本文介绍了从组件状态中的数组中删除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试找到在组件状态下从数组中删除元素的最佳方法。既然我不应该直接修改 this.state
变量,那么从数组中删除元素是否有更好的方法(更简洁)?:
I am trying to find the best way to remove an element from an array in the state of a component. Since I should not modify the this.state
variable directly, is there a better way (more concise) to remove an element from an array than what I have here?:
onRemovePerson: function(index) {
this.setState(prevState => { // pass callback in setState to avoid race condition
let newData = prevState.data.slice() //copy array from prevState
newData.splice(index, 1) // remove element
return {data: newData} // update state
})
},
谢谢。
已更新
此更新已使用setState中的回调。这应该在更新时引用当前状态时完成。
This has been updated to use the callback in setState. This should be done when referencing the current state while updating it.
推荐答案
我见过的最干净的方法是使用过滤器
:
The cleanest way to do this that I've seen is with filter
:
removeItem(index) {
this.setState({
data: this.state.data.filter((_, i) => i !== index)
});
}
这篇关于从组件状态中的数组中删除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!