我认为 Splice(remove) 方法的工作原理与其实际工作完全相反

Md.*_*lah 0 javascript splice react-native

我期望只删除“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,
        }
        )
    })
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 5

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

deleteNumber = (index) => {
  let numbers = this.state.numbers;
  numbers.splice(index, 1);
  this.setState({
    numbers
  });
}
Run Code Online (Sandbox Code Playgroud)