📅  最后修改于: 2023-12-03 15:07:58.731000             🧑  作者: Mango
当我们使用React时,我们经常使用状态(state)来维护组件中的数据。有时我们需要将新的数组添加到组件状态的现有数组后面,这可以通过以下方法实现:
this.setState(prevState => ({
myArray: [...prevState.myArray, ...newArray]
}));
在上面的示例中,我们使用ES6的展开运算符,将现有数组和新数组合并为一个新数组并返回给状态。
请注意,我们使用prevState
而不是直接访问this.state.myArray
。这是因为setState()
被设计成可以异步更新状态。如果你在this.state
上直接操作,不能保证你得到的是最新的状态。通过使用prevState
,我们保证了我们始终使用最新的状态。
此外,我们还可以使用concat()
方法将新数组添加到现有数组的末尾,如下所示:
this.setState(prevState => ({
myArray: prevState.myArray.concat(newArray)
}));
这里我们不使用展开运算符,而是使用concat()
方法来合并数组。正如上面提到的,我们使用prevState
而不是this.state
来确保我们使用最新的状态。
总结一下,我们可以使用展开运算符或concat()方法将新数组添加到React组件状态的现有数组后面。请记住在更新状态时使用prevState
而不是直接更新this.state
来确保我们使用最新的状态。