我在组件中有一个方法。我想用嵌套对象数组中的键动态设置状态。
method = (name, value) => {
console.log(name)
//a //value is 1
//b //value is 2
//c //value is 3
this.setState({ [name]:value })
}
不嵌套时,它会成功地动态更改状态。但是当它嵌套时
method = (name, value) => {
this.setState({
ArrayOfObjects:[{
[name] : value
}]
}
我的状态变成
state = {
ArrayOfObjects: [{
c: 3
}]
}
我想要
state = {
ArrayOfObjects: [{
a: 1,
b: 2,
c: 3
}]
怎么了?
最佳答案
您可以将元素推到当前的ArrayOfObjects。
ArrayOfObjects = this.state.ArrayOfObjects;
ArrayOfObjects.push({[name] : value});
this.setState({
ArrayOfObjects
});
或使用传播运算符:
this.setState({
ArrayOfObjects: [
...this.state.ArrayOfObjects,
{[name] : value}
]
});
关于javascript - 具有键嵌套状态的动态setState(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53092249/