2017-12-02 12 views
-1

は、私は次があります。状態はどのように更新されていますか?

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 }); 
     }); 
} 

最初にconsole.logは項目を示しnullです。 2番目のconsole.logは、sの値をキーとして更新され、空の配列が値として更新される項目を示します。アイテムはどのように更新されていますか?

だから、この割り当ては、参照することによってであることである必要があります。

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

はそれはそれはこの方法をSETSTATEしても大丈夫だということですか?

私は反応のコースに従おうとしています。誰かが私にこれをカバーするソースを指すことができれば、私はそれを感謝するでしょう。

答えて

2

setStateのReactのメソッドを使用しない限り、配列内の変更が状態で更新されない場合。反応するjsを学ぶ最も良い場所は、文書React Get Startedです。

関連する問題