Redux状态读取疑问:可获取user.token_type却无法读取user.user.id
问题原因解析
- 本质是**
state.userreducer.user.user为undefined**,导致无法读取id属性。 - 你能正常获取
token_type,说明state.userreducer.user这个外层对象是存在的,但内层的user字段大概率是下面两种情况:- 初始状态未初始化:你的userReducer初始state里,可能只给
token_type设置了默认值,却没给内层user定义初始值(比如没设成{}或者null)。组件首次渲染时,store里的内层user就是undefined,访问id自然报错。 - 异步数据加载时序问题:
token_type可能在登录接口返回的第一批数据里就被更新到store了,而内层user的信息是后续才加载完成的。组件在数据未完全加载时就尝试读取user.id,就会触发错误。
- 初始状态未初始化:你的userReducer初始state里,可能只给
- 你可以临时在useSelector里打印
state.userreducer.user,就能看到内层user的实时状态,确认是哪种情况。
内容的提问来源于stack exchange,提问作者Brydawg
相关产品推荐
相关产品推荐

