使用Redux时action.payload.description返回undefined该如何解决
问题原因
- 核心错误为拼写笔误:你在
index.js中分发的action里,payload的键名写为了decription,但reducer.js中取值用的是action.payload.description,二者键名不匹配,无法读取到对应的值,所以返回undefined。 - 存在隐性逻辑错误:你把
console.log(store.getState())写在了reducer.js的末尾,首先reducer.js中没有导入store实例会直接报错,其次就算导入了,此时store还未完成初始化,打印时机完全错误,无法获取dispatch之后的最新状态。
修复步骤
- 修正
index.js中的action payload拼写,同时把状态打印逻辑移到dispatch语句之后:
import store from './store' store.dispatch({ type:"bugAdded", payload: { // 修正拼写错误,补全s改为description description: "THIS" } }); // dispatch执行后打印才能拿到更新后的状态 console.log(store.getState());
- 删除
reducer.js末尾的console.log(store.getState());语句即可。
内容的提问来源于stack exchange,提问作者Omega
相关产品推荐
相关产品推荐

