我正在使用新的键值更新“组件”的反应状态数组中的子数组。
this.setState({
components: {
...this.state.components,
[this.state.key]: {
...this.state.components[this.state.key],
[key]: v
}
}
});
这有效,但是它将this.state.components从数组更改为我不需要的对象。
我可以做到
var result = Object.keys(this.state.components).map(function (k) {
return { [k]: this.state.components[k] };
});
this.setState({components: result});
修复数据,但是两次设置状态似乎很混乱且效率低下。有没有更好的办法?我尝试了使用[]而不是{}的各种形式,但是据我对散布运算符的理解,这应该可以工作。
答案 0 :(得分:1)
您可以在当前处于状态的map
数组上使用components
并按状态返回key
与组件索引不匹配的对象,或者更改{ {1}}属性(如果它们确实匹配)。
[key]