Redux Reducer状态返回NaN值

Redux Reducer状态返回NaN值,redux,react-redux,Redux,React Redux,我定义了一个reducer,但它总是返回NaN值而不是数字。我在store.js中定义了一个存储,就像createStore(reducer,{},applyMiddleWire()。reducer正在工作,但总是返回NaN值 从“/buttonAction”导入{递增,递减}; 常量初始状态={ 柜台:1 }; 常量计数=(状态=初始状态,操作)=>{ 开关(动作类型){ 案例“增量”: 状态={ ……国家, 计数器:state.counter+1 }; 控制台日志(“编号”,状态); 打破

我定义了一个reducer,但它总是返回
NaN
值而不是数字。我在
store.js
中定义了一个存储,就像
createStore(reducer,{},applyMiddleWire()
。reducer正在工作,但总是返回
NaN

从“/buttonAction”导入{递增,递减};
常量初始状态={
柜台:1
};
常量计数=(状态=初始状态,操作)=>{
开关(动作类型){
案例“增量”:
状态={
……国家,
计数器:state.counter+1
};
控制台日志(“编号”,状态);
打破
“减量”一案:
状态={
……国家,
计数器:state.counter+1
};
控制台日志(“编号”,状态);
打破
违约:
}
返回状态;
};
导出默认计数;

我一直在寻找相同的错误,我认为您的问题可能与其他人所说的一样,是因为负载没有定义到组件中(方法属性)

我解决了这个关于redux生命周期的错误,并学到了一些其他的东西


我一直在寻找同样的错误,我认为您的问题可能与其他人所说的一样,是因为负载没有定义到组件中(方法属性)

我解决了这个关于redux生命周期的错误,并学到了一些其他的东西


在切换情况下,您需要返回新状态

关键是Redux状态与React状态不同。 更改React状态时,setState()只更改状态的特定部分,而其他状态内容保持不变

另一方面,Redux希望您始终返回一个新状态,一个新对象。Redux不会像React那样合并旧状态和新状态。因此,答案是您需要在每个开关情况下创建新对象并返回它,Redux将用新状态替换旧状态

switch (action.type) {
case "INCREMENT":
 return {
    ...state,
    counter: state.counter + 1
  };
  console.log("Number", state);
  break;

在切换情况下,您需要返回新状态

关键是Redux状态与React状态不同。 更改React状态时,setState()只更改状态的特定部分,而其他状态内容保持不变

另一方面,Redux希望您始终返回一个新状态,一个新对象。Redux不会像React那样合并旧状态和新状态。因此,答案是您需要在每个开关情况下创建新对象并返回它,Redux将用新状态替换旧状态

switch (action.type) {
case "INCREMENT":
 return {
    ...state,
    counter: state.counter + 1
  };
  console.log("Number", state);
  break;

调度操作如何?const-mapDispatchToProps=(dispatch)=>{console.log(“工作调度”);返回{increment:()=>{dispatch(increment())},decrement:()=>{dispatch(decrement())}};显示
increment()
decrement())
请。我猜您有一个输入错误,
操作。type
既不是“递增”也不是“递减”。但这应该会给您初始状态…嗯。将console.log()放在reducer中,并检查来自操作的值。或者您可以检查天气计数器是number,然后返回是NaN,然后不是。这正在工作。但是现在{this.props.count}不工作,或者来自mapStateToProps的值不工作分派操作如何?const mapDispatchToProps=(dispatch)=>{console.log(“工作分派”);返回{increment:()=>{dispatch(increment())},decrement:()=>{dispatch(decrement())}};显示
increment()
减量()
请。我猜您有一个输入错误,
操作。type
既不是“增量”也不是“减量”。但这应该会给您初始状态…Hmm.put console.log()在reducer中,检查来自操作的值。或者您可以检查天气计数器是数字,然后返回是NaN,然后不是。这现在正在工作。但是现在{this.props.count}不工作,或者MapStateTops中的值不工作