2016-04-24 5 views
0

Ich habe Tausende von Objekten in einem Array im Zustand gespeichert sind, wie folgt aus:Reactjs: Was ist der richtige Weg, um ein Objekt in einem großen Array im Zustand zu ändern?

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

this.state.data.length > 10000 

ich einige Status in der Gruppe ändern möchten, wie status Set von this.state.data[1000] zu this.state.data[3000] zu true;

Ich klonte zuerst die Daten in ein neues Array, aber ich habe ein Leistungsproblem dafür gefunden. Da alles, was wir geklont haben, die Objektreferenzen sind, modifizieren wir immer noch das tatsächliche Objekt, wenn wir das geklonte Array modifizieren. Ich weiß also nicht, ob es noch sinnvoll ist, das Array zu klonen.

Und was ist der richtige Weg?

Antwort

4

React an update helper bekam mit dieser Art von Situationen umgehen

import update from 'react-addons-update' 


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