Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何向数组中添加对象,并在用户单击时将其删除?_Javascript_Arrays_Reactjs_React Native_Object - Fatal编程技术网

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
call
setState(prevSelected=>*update logic*)