2017-12-02 17 views
-1

Ich habe folgendes:Wie wird der Status aktualisiert?

constructor() { 
    super(); 
    this.state = { 
     lists: [], 
     items: {}    
    }; 
} 

handleAddList(s) {  
    var temp= this.state.lists.slice(0,this.state.lists.length); 
    temp.push(s); 

    console.log(this.state.items); 

     this.setState({lists: temp},function(){ 

      var ourList = this.state.items; 
      ourList[s] = []; 

      console.log(this.state.items); 

      // var items = Object.assign({}, this.state.items, {[s]: []}) 

     // this.setState({ items: items }); 
     }); 
} 

die erste console.log zeigt Elemente ist null. Das zweite console.log zeigt Elemente, die mit dem Wert von s als Schlüssel und einem leeren Array als Wert aktualisiert wurden. Wie werden Artikel aktualisiert?

So muss es sein, dass diese Zuordnung durch Referenz:

var ourList = this.state.items; 
ourList[s] = []; 

Bedeutet das, dass es in Ordnung ist, so SetState?

Ich versuche einen Kurs zu folgen, wenn jemand mich auf eine Quelle verweisen könnte, wo dies abgedeckt ist, würde ich es schätzen.

Antwort

2

Wenn eine Änderung im Array nicht im Zustand aktualisiert wird, es sei denn, Sie verwenden setState Methode von React. Der beste Ort, um zu lernen, ist die Dokumentation React Get Started.

Verwandte Themen