splice() 会改变原始数组,应该避免。相反,一个不错的选择是使用filter()创建一个新数组,因此不会改变状态。但是我曾经使用带有扩展运算符的 splice() 从数组中删除项目。
removeItem = index => {
const items = [...this.state.items];
items.splice(index, 1);
this.setState({ items });
}
所以在这种情况下,当我记录items
更改但this.state.items
保持不变时。问题是,为什么每个人都使用filter
而不是splice
with spread
?它有什么缺点吗?