Reactjs:修改状态中大型数组中对象的正确方法是什么?

时间:2016-04-24 17:37:54

标签: reactjs

我在状态中存储了数千个对象,如下所示:

state: {
    data: [{name: 'a', status: true}, {name: 'b', status:false}, ...]
}

this.state.data.length > 10000

我想修改数组中的某些状态,例如将statusthis.state.data[1000]设置为this.state.data[3000]true;

我曾经首先将数据克隆到新数组中,但我遇到了一些性能问题。由于我们所有克隆都是对象引用,因此当我们修改克隆数组时,我们仍在修改实际对象。所以我不知道克隆数组是否仍然有意义。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

React得到an update helper来处理这种情况

import update from 'react-addons-update'


this.setState(
{
    data: update(this.state.data,{
                    [indexToChange] : {
                        status: {$set: true}
                    }
                })
}