我在状态中存储了数千个对象,如下所示:
state: {
data: [{name: 'a', status: true}, {name: 'b', status:false}, ...]
}
this.state.data.length > 10000
我想修改数组中的某些状态,例如将status
从this.state.data[1000]
设置为this.state.data[3000]
到true
;
我曾经首先将数据克隆到新数组中,但我遇到了一些性能问题。由于我们所有克隆都是对象引用,因此当我们修改克隆数组时,我们仍在修改实际对象。所以我不知道克隆数组是否仍然有意义。
这样做的正确方法是什么?
答案 0 :(得分:4)
React得到an update helper来处理这种情况
import update from 'react-addons-update'
this.setState(
{
data: update(this.state.data,{
[indexToChange] : {
status: {$set: true}
}
})
}