无法在 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的主要内容,如果未能解决你的问题,请参考以下文章

提供商无法访问redux商店

无法在 redux 开发工具中查看状态数据

无法在 firebase 重定向结果中使用 Redux 道具

无法在 React Native 中连接 remote-redux-devtools

无法在我的组件中调用 redux 操作

无法在 react native 中使用 redux 连接多个组件