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

Reactjs:在状态下修改大型数组中的对象的正确方法是什么?,reactjs,Reactjs,一个数组中有数千个对象存储在状态中,如下所示: 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 我曾经先将数据克隆到一个新的阵列中,但是我遇到了一些性能问题。由于

一个数组中有数千个对象存储在状态中,如下所示:

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

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

什么是正确的方法呢?

我们必须处理这种情况

import update from 'react-addons-update'


this.setState(
{
    data: update(this.state.data,{
                    [indexToChange] : {
                        status: {$set: true}
                    }
                })
}
我必须处理这种情况

import update from 'react-addons-update'


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