this.setState ({
information: [{
country: 'country1',
place: 'place1'
}]
});
这个setState();在每个循环中执行多次a。 问题是每个循环都会覆盖现有值。 我必须改变每个循环'添加'新值?
更新 我为下面的问题找到了一个有效的解决方案:
this.setState (state => ({
countries: [...state.countries,
{
name: child.key.toString(),
uri: snapshot.val().toString()
}
]
}));
答案 0 :(得分:1)
你可以这样做:
this.setState(state=> ({
information: {
country: [...state.information.country, "country1"],
place: [...state.information.place, "place1"]
}
})
);
console.log(this.state.information);
答案 1 :(得分:0)
你无法真正推动,因为它会直接改变状态并且可能导致容易出错的代码,即使你正在重置"之后又是国家。 F.ex,它可能会导致像componentDidUpdate这样的生命周期方法不会触发。
因此,使用ES6,您可以使用扩展运算符。
this.setState(prevState => ({
information: {
country: [...state.information.country, "country1"],
place: [...state.information.place, "place1"]
}
})
);
console.log(this.state.information);