React Redux项目mapStateToProps获取loginval值为undefined求助
问题根因
你项目的错误出在loginValue.js的reducer逻辑中:
Redux要求reducer必须始终返回完整的state对象,而你当前的实现两个分支都返回了布尔值而非完整对象,导致全局state最终变为布尔类型,mapStateToProps中读取state.loginval时自然返回undefined。
具体错误点:
- 默认分支错误返回
state.loginval(布尔值),而非完整的state对象 - Change类型分支错误返回
!state.loginval(布尔值),而非修改属性后的完整state对象
修复方案
替换loginValue.js的代码为以下内容即可:
const initialState={ loginval:true }; const changeLogin = (state=initialState,action) => { switch(action.type){ case "Change": return { ...state, loginval: !state.loginval }; default: return state; } }; export default changeLogin;
冗余代码提示(非报错原因,可优化)
App.js中引入的Provider属于冗余导入,你已经在index.js中全局注册了Provider,可直接删除该导入语句。
内容的提问来源于stack exchange,提问作者Apoorv
相关产品推荐
相关产品推荐

