2017-12-02 155 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