2017-12-02 119 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顯示項目爲空。第二個console.log顯示用s的值作爲鍵更新的項目以及作爲值的空數組。項目如何更新?

因此,它必須是這個任務是參考:

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

這是否意味着它的確定SETSTATE這種方式?

我試圖按照課程的反應,如果有人可以指向我的來源,這是涵蓋我將不勝感激。

回答

2

如果對陣列中的任何修改都不會在狀態中更新,除非您使用React的setState方法。學習反應js的最佳地點是文檔React Get Started