首页 > 解决方案 > 从数组中删除选定的行

问题描述

在这里我想通过按下并选择 DeleteRow 按钮来清除这些行,问题是如果我从列表顶部选择行,它们将毫无问题地被删除,但如果这些行是从选择向下到顶部,则选择行无法删除。

handleMultipleDelete = () =>{
        const arr=this.state.selectRowList;
        const product = this.state.productList;

        for (let i=arr.length-1; i>=0; i-- ){
           product.splice(arr[i], 1);
        }
          this.setState({
              productList: product,
              selectRowList: [],
          });
    }

我的代码在这里

标签: reactjs

解决方案


您只需要在删除之前对 arr 进行排序,因为它们是数组的索引。

这是更新的功能

handleMultipleDelete = () => {
    const arr = this.state.selectRowList;
    const product = this.state.productList;
    arr.sort(function(a, b) {
      return a - b;
    });
    for (let i = arr.length - 1; i >= 0; i--) {
      product.splice(arr[i], 1);
    }
    this.setState({
      productList: product,
      selectRowList: []
    });
  };

这是更新的 fork


推荐阅读