我正在使用React + TypeScript进行开发,并使用Redux进行集中式状态管理-存储当前登录的用户。
Here is the userReducer:
Here is the store:
Here is the snippet of code inside my React component, where I try to access the user state:
我不知道为什么useSelector
返回undefined,因为我已经在userReducer
中定义了一个initialState。
1条答案
按热度按时间syqv5f0l1#
因为您将根状态定义为
{user}
。换句话说,userReducer
的数据作为state.user
附加到根状态。因此,选择器必须是
state => state.user
。您的存储文件也有问题。您已经用
const rootReducer = combineReducers({userReducer})
创建了 * 另一个 * reducer函数,然后从中推断出RootState
类型。这在两个方面是错误的:
configureStore
已经根据您提供的定义创建了自己的根reducer函数,并且正在使用它RootState
类型是错误的,因为它是从错误的函数推断出来的这就是为什么你甚至没有得到一个TS错误在这里。
相反,您需要删除
combineReducers
行,然后执行以下操作:根据我们的TS使用文档: