无法在 redux 、 react/typescript 中使用 rootReducer
Posted
技术标签:
【中文标题】无法在 redux 、 react/typescript 中使用 rootReducer【英文标题】:Cannot use rootReducer in redux , react/typescript 【发布时间】:2021-10-16 08:55:57 【问题描述】:我正在使用 react/typescript 学习 redux。在我使用超过 1 个减速器之前,一切都很好。 起初,我是这样创建商店的:
import AuthReducer from './reducers/AuthReducer'
const middleware = [thunk];
const store = createStore (AuthReducer, applyMiddleware(thunk))
export default store
但是当我尝试使用rootReducer
时,我从商店记录的数据是未定义的。
import AuthReducer from './reducers/AuthReducer'
const middleware = [thunk];
const rootReducer=combineReducers(
AuthReducer,
CartReducer
)
const store = createStore (rootReducer, applyMiddleware(thunk))
export default store
【问题讨论】:
如何使用state form store 欢迎来到 SO。请不要将代码或错误消息包含在屏幕截图或图像中。它使帮助您变得更加困难。花点时间在您的问题中包含minimal reproducible example 作为格式化文本(我在本例中编辑了您的问题)。 同意@Viet,现在您正在合并reducers,state
中的所有内容现在都将在state.AuthReducer
中,等等...
我得到这样的状态: const userState:UserState = useSelector((state:UserState) => state)
天哪,非常感谢。我已经坚持了2天。感谢您的问题@Viet,我解决了这个问题。我虽然问题出在商店,但它确实来自我使用 state 的方式。
【参考方案1】:
import createStore, applyMiddleware, compose from 'redux'
import thunk from 'redux-thunk'
import reducers from '../Reducers'
//this is all your reducers that are combined
const middleWare = [ thunk ]
const store = createStore (
reducers,
undefined,
compose(
applyMiddleware(...middleWare)
)
)
export default store;
【讨论】:
以上是关于无法在 redux 、 react/typescript 中使用 rootReducer的主要内容,如果未能解决你的问题,请参考以下文章
无法在 firebase 重定向结果中使用 Redux 道具