最近正在学习react的redux,刚用store.subscribe(action)监测状态,就发生了一下的错误:
从网上看了一些资料,发现各有各的问题,但是报错都是类似的。
因为我没有添加路由,所以只能把调用方法的地方都检查一遍。果然发现问题了,在reducer.js方法定义的时候,我返回了函数而不是状态值。【初级错误,捂脸ing】
下面代码是报错的代码;
export default function countReducer(prestate = initState, action) {
const { type, data } = action;
console.log(prestate, type, data, "---reducue");
switch (type) {
case INCREMENT:
return () => prestate + data;
case DECREMENT:
return () => prestate - data;
default:
return prestate;
}
}
下面是更正后的代码:
export default function countReducer(prestate = initState, action) {
const { type, data } = action;
console.log(prestate, type, data, "---reducue");
switch (type) {
case INCREMENT:
return prestate + data;
case DECREMENT:
return prestate - data;
default:
return prestate;
}
}
reducer.js是纯粹的js函数,返回的应该是数值而不是箭头函数。所以这里报错了。
以上是整个解决过程,希望对你有帮助~