试图避免重复的问题,但我认为这与我之前搜索的问题有所不同。
我的状态为“收藏夹”,其中包含一系列商品。我想在以下函数中向数组添加一个项目。我正在创建一个具有收藏夹值的变量,然后将新值推入数组的该变量并将收藏夹状态设置为新变量。
这对我有用,但我正在尝试查看这是否是不合适的方法。
handleAddFavorite(item) {
let favorites = this.state.favorites;
favorites.push(item);
this.setState({
favorites: favorites
});
}
答案 0 :(得分:0)
要将项目推入状态数组,可以使用ES6 spread syntax,如下所示:
this.setState({
favorites: [...this.state.favorites, item]
});
答案 1 :(得分:0)
您正在引用该数组,而不是创建一个新数组。
创建新数组的一种方法是使用ES2015 array spread:
handleAddFavorite(item) {
const {favorites} = this.state;
this.setState({
favorites: [...favorites, item]
});
}
答案 2 :(得分:0)
在这里您不能将对象推入这样的状态数组。您可以按自己的方式在常规数组中进行推送。在这里,您必须设置状态,
this.setState({
favorites: [...this.state.favorites, item]
})