这是我的代码 useSelector
const user = useSelector<RootStateOrAny, typeof typeRootReducer>((state) => state.user)
在 rootReducer 中
const rootReducer = combineReducers({
user: userReducer
})
export default rootReducer
export type typeRootReducer = ReturnType<typeof rootReducer>
初始化状态
const initState = {
user: null
}
当我尝试 console.log(user.user.name)
时,它只会给我 cannot read property name of null
答案 0 :(得分:0)
嗯,你的 user
是 - 正如你自己写的 - null
。所以你正在调用 null.name
,这是行不通的。您的选择器使用本身没有任何问题,只是您的状态包含与您的代码不匹配的内容。
一般来说,为了避免你在那里做的所有类型体操,建议创建一个 useAppSelector
预类型的钩子,这样你就可以
const user = useAppSelector(state => state.user)
,所有内容都会自动正确输入。
按照 TypeScript Quick Start 教程进行操作。