как использовать useSelector в typescript

#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) , и все будет набрано правильно автоматически.

Для этого следуйте руководству по быстрому запуску машинописи.