#typescript #redux
Вопрос:
это мой выбор использования кода
const user = useSelector<RootStateOrAny, typeof typeRootReducer>((state) => state.user)
в рутредукторе
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
Ответ №1:
Ну, ваш user
— как вы сами написали — null
. Итак , вы звоните null.name
, но это не работает. Ничего плохого в использовании вашего селектора как такового нет, просто ваше состояние содержит что-то, что не соответствует вашему коду.
Как правило, чтобы избежать всей этой типографской гимнастики, которую вы там делаете, рекомендуется создать useAppSelector
предварительно набранный крючок, чтобы вы могли просто сделать const user = useAppSelector(state => state.user)
, и все будет набрано правильно автоматически.
Для этого следуйте руководству по быстрому запуску машинописи.