我要在数组中推送一些对象,并根据那里的特定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从数组中删除对象。
答案 0 :(得分:0)
根据您的评论进行编辑。首先检查该项目是否存在于数组中。如果是这样,请将其删除。如果未添加新项目。我没有时间进行测试,但是这样的方法可能会起作用。
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);
}