[英]How to add a new key:value pair to an already existing array state variable react native
[英]Add new values to existing state - React Native
this.setState ({
information: [{
country: 'country1',
place: 'place1'
}]
});
這個setState(); 為每個循環執行多次。 問題在於現有值將在每個循環中被覆蓋。 我必須更改以在每個循環中“添加”新值嗎?
更新:我為下面的問題找到了一個可行的解決方案:
this.setState (state => ({
countries: [...state.countries,
{
name: child.key.toString(),
uri: snapshot.val().toString()
}
]
}));
您可以這樣操作:
this.setState(state=> ({
information: {
country: [...state.information.country, "country1"],
place: [...state.information.place, "place1"]
}
})
);
console.log(this.state.information);
您不能真正進行推送,因為它會直接使狀態發生變化,並且即使隨后再“重置”狀態也可能導致易於出錯的代碼。 例如,它可能導致某些生命周期方法(例如componentDidUpdate)不會觸發。
因此,使用ES6,您可以使用傳播算子。
this.setState(prevState => ({
information: {
country: [...state.information.country, "country1"],
place: [...state.information.place, "place1"]
}
})
);
console.log(this.state.information);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.