![](/img/trans.png)
[英]How to add more objects to Array Object state using setState?
[英]Add an object with setState() to an array of objects
我的組件的狀態是一個對象數組:
this.state = {
userFavorites: [{id: 1, title: 'A'}, {id: 2, title: 'B'}]
}
每次單擊按鈕時,我都需要使用另一個對象更新我的狀態,就像我在上面的狀態中一樣; 例如:{id: 3, title: 'C'}。
如果我簡單地連接它們並設置狀態,最后一個對象會不斷被添加的對象更改。
我在這里需要點差運算符嗎?
你應該這樣做。 以下是在反應中將值或對象推送到數組的最推薦方法
this.setState( prevState => ({
userFavorites: [...prevState.userFavourites, {id: 3, title: 'C'}]
}));
要推送到數組的開頭,請這樣做
this.setState( prevState => ({
userFavorites: [{id: 3, title: 'C'}, ...prevState.userFavourites]
}));
const userFavorites = [...this.state.userFavorites, {id: 3, title: 'C'}]
this.setState({ userFavorites })
有多種方法可以做到這一點。 您需要做的最簡單的方法是使用擴展運算符。 請注意, item 是添加到 userFavorites 的對象。
this.setState({
userFavorites: [ ...this.state.userFavorites, item ],
});
注意:如果在某個時候你需要更新數組中的特定項目,你可以使用 immutability-helpers 庫中的更新函數。 https://reactjs.org/docs/update.html
對於功能組件
setUserFavorites((prev) => [...prev, {id: 3, title: 'C'}])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.