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。对不起,你的回答还是让我很好奇