Javascript 国家给出错误的结果

Javascript 国家给出错误的结果,javascript,reactjs,Javascript,Reactjs,我对状态结果有疑问,它给了我奇怪的结果。 这是密码 ... const initState = { count: 0 } const counterReducer = (state=initState, { type }) => { switch (type) { case 'INCREMENT': return { //i will get NaN if //count: state.count + 1

我对状态结果有疑问,它给了我奇怪的结果。 这是密码

...
const initState = {
  count: 0
}

const counterReducer = (state=initState, { type }) => {

  switch (type) {
    case 'INCREMENT':
      return {    
        //i will get NaN if 
        //count: state.count + 1      

        // i  will get 1
        count: initState.count + 1 

      }

    default:
      return {
        state
      }
  }
}

const store = createStore(counterReducer);
console.log(store.getState());// here is 0

store.dispatch({ type: 'INCREMENT'})
console.log(store.getState()); //here is 1
...

我对结果感到困惑,在开关块中,为什么我把

count: state.count+1 //Why the result is **Nan**? 
不是应该是1吗?但是如果我把

count: initState.count+1
将产生结果1


感谢您提供的任何帮助

,因为您命名的状态在顶部被称为
initState
。在减速器的情况下,您访问的是该状态,而不是
状态
。将
initState
重命名为您喜欢的任何名称并执行
您喜欢的任何操作。计数+1将起作用。

如果返回时出错,则返回

{ state }
这意味着您将创建一个具有属性状态的新对象,因此结果如下:

state: {
  state: {
    count: 1
  }
}
将返回更改为

default:
      return state

奇怪的是,如果我们看到state的链接是正确的,例如initState被分配给state,那么state.count的值是0,所以当我们计数时:state+1应该是1。对不起,你的回答还是让我很好奇