javascript - 从平面列表中删除项目
问题描述
我需要创建一个函数来从 Flatlist 中删除项目,下面是我正在使用的项目,但不是删除项目,而是再次添加相同的项目:
removeItem = (key) => {
let filteredItems = this.state.workoutList.filter(item => item.key !== key);
this.setState({ workoutList: filteredItems })
}
这是我运行终端时显示的内容:
Array [
Object {
"Friday": false,
"Monday": true,
"Saturday": false,
"Sunday": false,
"Thursday": false,
"Tuesday": false,
"Wednesday": false,
"key": 0.3257222928276463,
"workoutName": "",
},
]
解决方案
我认为您不能直接更改状态变量,您需要使用Object.assign()
从状态复制该数组来操作它。
removeItem = (key) => {
let filteredItems = Object.assign([], this.state.workoutList).filter(item => item.key !== key);
this.setState({ workoutList: filteredItems })
}
应该做的工作
推荐阅读
- doi - Scopus DOI 在文章检索 API 中不起作用
- javascript - 尝试打开 .js 文件时出现错误 Object
- node.js - nodejs rhea npm for amqp couldn't create subscription queue on address in activemq artemis
- android - Firebase android 发行版不允许 applicationIdSuffix
- networking - 如何通过 2 个不同的协议让 ALB 指向同一个应用程序?
- azure - 检查 Azure SQL 数据库是否已完全删除
- python - 尝试在使用方法 insert() 时在列表中添加新的最后一个元素
- arrays - 如何在反应中设置对象的对象
- javascript - 赛普拉斯 - 如何限制常数值?
- react-native - 如何在获取新数据时从 api 更新数据?