Javascript 如何向数组中添加对象,并在用户单击时将其删除?
当用户按下按钮时,我只是将数据添加到一个状态,而现在当用户按下按钮时,我需要删除数据/并且不让数据添加到阵列?我用这个来做反应Javascript 如何向数组中添加对象,并在用户单击时将其删除?,javascript,arrays,reactjs,react-native,object,Javascript,Arrays,Reactjs,React Native,Object,当用户按下按钮时,我只是将数据添加到一个状态,而现在当用户按下按钮时,我需要删除数据/并且不让数据添加到阵列?我用这个来做反应 My state; state = { selected = [] }; 现在该函数对所有数据进行状态转换 Handler(data){ cont {selected } = this.state; if(!selected.includes(data)) { th
My state;
state = { selected = [] };
现在该函数对所有数据进行状态转换
Handler(data){
cont {selected } = this.state;
if(!selected.includes(data))
{
this.setState({ selected : [...selected, data] })
}else{
const index = selected.indexOf(data);
if (index > -1) {
const selection = selected ;
selection.splice(index, 1);
this.setState({ selected : selection });
}
}
}
但是,上面继续添加数据,因为我将数据作为对象发送
Data sent to above function, {available: 'true'}
那么,如何做到这一点呢?检查对象是否已显示并删除它?当我像“[true]”一样传递数组时它工作,但当我传递对象时它不工作 这将有助于检查
包含的功能。如果数据被添加到状态,这意味着条件存在一些问题,对吗?检查提供给您的内容。您正在此处更改您的状态const selection=selected;selection.splice(…
您至少需要克隆状态数组const selection=[…selected];
但最好在setState
调用setState(prevSelected=>*更新逻辑*)
这将有助于检查执行检查的includes
函数。如果将数据添加到状态,这意味着条件存在问题,对吗?检查包含的内容为您提供的内容。您正在此处更改您的状态const selection=selected;selection.splice(…
您至少需要克隆状态数组const selection=[…selected];
但最好在setState
callsetState(prevSelected=>*update logic*)