首页 > 解决方案 > 我认为 Splice(remove) 方法的工作方式与其实际工作完全相反

问题描述

我希望只删除“deleteNumber”方法中的给定索引。但它做的恰恰相反。它删除除了给定索引之外的所有索引。

Javascript代码:

deleteNumber = (index) => {
    console.log("index: ", index);
    this.setState((state) => {
        const numbers = state.numbers.splice(index, 1);
        this.storeData('numbers', JSON.stringify(numbers));
        return(
        {
            numbers: numbers,
        }
        )
    })
}

在此处输入图像描述

标签: javascriptreact-nativesplice

解决方案


Splice 改变给定的数组并返回它删除的元素。像这样的东西会将状态设置为新的(更改的)数组。

deleteNumber = (index) => {
  let numbers = this.state.numbers;
  numbers.splice(index, 1);
  this.setState({
    numbers
  });
}

推荐阅读