首页 > 解决方案 > 从平面列表中删除项目

问题描述

我需要创建一个函数来从 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": "",
  },
]

标签: javascriptarraysreactjsreact-nativereact-native-flatlist

解决方案


我认为您不能直接更改状态变量,您需要使用Object.assign()从状态复制该数组来操作它。

removeItem = (key) => {
   let filteredItems = Object.assign([], this.state.workoutList).filter(item => item.key !== key);
   this.setState({ workoutList: filteredItems })
}

应该做的工作


推荐阅读