本文介绍了从组件状态中的数组中删除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试找到在组件状态下从数组中删除元素的最佳方法。既然我不应该直接修改 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)
  });
}

这篇关于从组件状态中的数组中删除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-30 06:05
查看更多