reactjs - 如何使用单个切换按钮推送和删除具有 3 个三个属性的对象
问题描述
我将在数组中推送一些对象并根据那里的特定 ID 删除它们。现在的挑战是我想使用单个切换按钮同时进行推送和删除。
this.state = {
array: [{
id: 1,
name: "Abc",
checkBoxState: true
}, ]
}
handleData(label, value, id) {
let obj = JSON.stringify({
id: id,
name: label,
checkBoxState: value
});
let array = this.state.array;
array.push(obj);
console.log(array);
}
请告诉我如何在一个按钮上实现它。
例如,如果我按下确定按钮,我将获取属性并推入一个数组,如果我再次按下此按钮,它将必须根据 ID 从数组中删除对象。
解决方案
根据您的评论进行编辑。首先检查该项目是否存在于数组中。如果有,请将其删除。如果它没有添加新项目。我没有时间测试,但这样的事情可能会奏效。
this.state = {
array: [{
id: 1,
name: "Abc",
checkBoxState: true
}]
}
handleData(label, value, id) {
let array = this.state.array;
let arrayIds = Object.values
for (let item of array) {
if (item.id === id) {
let deletedObj = array.filter(item => item.id === id)
this.setState({
array: deletedObj,
})
return
}
}
let obj = JSON.stringify({
id: id,
name: label,
checkBoxState: value
});
array.push(obj);
this.setState({
array
})
}
}
console.log(this.state.array);
}
推荐阅读
- docker - 将 Docker 映像部署到 Heroku:H14 错误
- netsuite - 是否可以将 NetSuite/Open Air 应用程序添加到 Zapier 应用程序?
- php - Laravel 8错误尝试在null上分配属性“plateno”
- node.js - 尝试使用 Electron 和 node-html-pdf 创建 PDF 时出错
- bash - 使用 grep 查找日志中的错误和错误来源
- excel - 我想选择动态单元格并自动填充到最后一行
- python - 极小极大逻辑工作缓慢
- python - Python 无法在 Windows 上访问文件
- sql - 如何从一个立方体调整到另一个立方体
- javascript - 卡在通过过滤器删除 li 元素