我正在 reactjs
中的 reducer
中将一些值更新为 javascript
object
,如下所示。
这是更新前的对象
state = {
result:1,
lastval: []
}
这就是我要更新它的方式,
state = {
...state,
result:state.result + 400,
lastval: result.lastval.push(20)
}
所以这给了我一个错误:state.lastValue.push is not a function
。但如果我像下面那样做就没问题,
state = {
...state,
result:state.result + 400,
};
state.lastval.push(20);
这很好。这是什么原因。
最佳答案
像这样更新你的状态
state = {
...state,
result:state.result + 400,
lastval: [...state.lastval, 20]
}
lastval: [...state.lastval, 20]
将解构 state.lastval
数组中的所有内容并添加 20
到它并再次将它包装在一个数组中。
有关 [...state.lastval]
的更多信息,请阅读 What is the meaning of this syntax "{...x}" in Reactjs
关于javascript - 如果项目在 javascript 对象内,如何将其插入数组 [state.lastValue.push 不是函数],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44255143/