如果项目位于javascript对象内,如何将其推入数组[state.lastValue.push不是函数]
我在如果项目位于javascript对象内,如何将其推入数组[state.lastValue.push不是函数],javascript,reactjs,Javascript,Reactjs,我在reactjs中的reducer中将一些值更新为javascript对象,如下所示 这是更新之前的对象 state = { result:1, lastval: [] } 这就是我要更新它的方式 state = { ...state, result:state.result + 400, lastval: result.lastval.push(20) } 因此,这给了我一个错误,state.lastValue.push不是一个函数。但
reactjs
中的reducer
中将一些值更新为javascript
对象,如下所示
这是更新之前的对象
state = {
result:1,
lastval: []
}
这就是我要更新它的方式
state = {
...state,
result:state.result + 400,
lastval: result.lastval.push(20)
}
因此,这给了我一个错误,state.lastValue.push不是一个函数。但如果我像下面这样做就好了
state = {
...state,
result:state.result + 400,
};
state.lastval.push(20);
这很好。原因是什么。原因是,当你写:
state = {
...state,
result:state.result + 400,
lastval: result.lastval.push(20)
}
国家的最终地位将是:
state = {
...state,
result: some value
lastval: 20
}
表示state.lasteval将成为一个数字,它将不是一个数组
,因为a.push(1)不会返回最终数组,它将返回推入数组
的项目
按如下方式编写以更新状态:
state = {
...state,
result: state.result + 400,
lastval: [...state.lastval, 20]
}
检查此代码段:
设a=[1,2];
设b=[];
b=a.推(3);
console.log('a',a);
console.log('b',b)代码>原因是,当您编写时:
state = {
...state,
result:state.result + 400,
lastval: result.lastval.push(20)
}
国家的最终地位将是:
state = {
...state,
result: some value
lastval: 20
}
表示state.lasteval将成为一个数字,它将不是一个数组
,因为a.push(1)不会返回最终数组,它将返回推入数组
的项目
按如下方式编写以更新状态:
state = {
...state,
result: state.result + 400,
lastval: [...state.lastval, 20]
}
检查此代码段:
设a=[1,2];
设b=[];
b=a.推(3);
console.log('a',a);
console.log('b',b)代码>更新您的状态,如
state = {
...state,
result:state.result + 400,
lastval: [...state.lastval, 20]
}
lastval:[…state.lastval,20]
将对state.lastval
数组中的所有内容进行解构,并将20
添加到数组中,然后再次将其包装到数组中
有关[…state.lastval]
更新您的状态的详细信息,请阅读
state = {
...state,
result:state.result + 400,
lastval: [...state.lastval, 20]
}
lastval:[…state.lastval,20]
将对state.lastval
数组中的所有内容进行解构,并将20
添加到数组中,然后再次将其包装到数组中
有关[…state.lastval]
的详细信息,请阅读