在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;
}
}
}
答案 0 :(得分:1)
调用this.setState
将触发组件的重新渲染并为for循环进行垃圾清理。您需要跟踪所有更改并致电setState
。