簡體   English   中英

反應:將項目推入狀態數組

[英]React: pushing item into state array

試圖避免重復的問題,但我認為這與我之前搜索的問題有所不同。
我有一個“收藏夾”狀態,它是一系列項目。 我想在以下函數中向數組中添加一個項目。 我正在創建一個具有收藏夾值的變量,然后將新值推入該數組變量並將收藏夾狀態設置為新變量。

這對我有用,但我想看看這是否是一種不正確的方式。

  handleAddFavorite(item) {
    let favorites = this.state.favorites;
    favorites.push(item);

    this.setState({
      favorites: favorites
    });
  }

要將項目推入狀態數組,您可以使用ES6 擴展語法,如下所示:

this.setState({
  favorites: [...this.state.favorites, item]
});

您正在引用數組而不是創建一個新數組。

創建新數組的一種方法是使用ES2015 數組 spread

 handleAddFavorite(item) {
    const {favorites} = this.state;

    this.setState({
      favorites: [...favorites, item]
    });
  }

在這里,您不能像這樣將對象推送到狀態數組。 您可以在普通數組中按自己的方式推送。 在這里你必須設置狀態,

this.setState({ 
     favorites: [...this.state.favorites, item] 
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM