2016-04-24 11 views
0

私はこのように、状態に格納された配列内のオブジェクトの数千を持っている:Reactjs:状態の大きな配列のオブジェクトを変更する正しい方法は何ですか?

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

this.state.data.length > 10000 

私はtruethis.state.data[3000]this.state.data[1000]からstatusを設定するように、配列内のいくつかのステータスを変更したいです。

私は最初にデータを新しい配列に複製するのに使用しましたが、パフォーマンス上の問題がありました。クローンしたものはすべてオブジェクト参照であるため、クローンされた配列を変更すると、実際のオブジェクトはまだ変更されています。だから、配列をクローン化することがまだ意味があるかどうかはわかりません。

これを行う正しい方法は何ですか?

答えて

4

は状況のこの種に対処するためan update helperを得た反応

import update from 'react-addons-update' 


this.setState(
{ 
    data: update(this.state.data,{ 
        [indexToChange] : { 
         status: {$set: true} 
        } 
       }) 
} 
関連する問題