反应组件-第一次迭代后跳过this.setState

时间:2018-06-21 21:02:41

标签: reactjs

在for循环中设置this.setState会在第一次迭代后跳过。在for循环中有一个switch语句,但它不会遍历所有项。

例如:-

 var items=[{key:"test",val:"hi"},{key:"test1",val:"hello"}];

    for(let item in items){
        console.log(items[item].key);
        console.log(items[item]["key"]);
        switch(items[item].key){
           case "test" : {
               console.log(items[item].val);
                        this.setState({testvar:items[item].val});
                        break;
                        }
              case "test1" : {
                        console.log(items[item].val);
                        this.setState({test1var:items[item].val});
                        break;
                        }

        }
   }

1 个答案:

答案 0 :(得分:1)

调用this.setState将触发组件的重新渲染并为for循环进行垃圾清理。您需要跟踪所有更改并致电setState