javascript - 我认为 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,
}
)
})
}
解决方案
Splice 改变给定的数组并返回它删除的元素。像这样的东西会将状态设置为新的(更改的)数组。
deleteNumber = (index) => {
let numbers = this.state.numbers;
numbers.splice(index, 1);
this.setState({
numbers
});
}
推荐阅读
- asp.net - 如何在 aspx 中转换返回的 asmx 类
- python - OSError:未找到 PortAudio 库
- python - 如何对据称丢失的模块 (google.oauth2) 进行故障排除?
- makefile - Makefile 目标内的条件
- android-emulator - 模拟器pulseaudio访问被拒绝
- azure - Azure 函数 Webhook 模板
- node.js - 如何使用 Mongoose 为单个帖子保存多个类别
- file - 为什么在创建文件时读取垃圾索引节点是操作系统?
- security - 用于禁用 AWS 上特定命名空间的所有 Internet 连接的 kubernetes 网络策略 - EKS
- android - 如何从 URL 获取视频缩略图