Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Reactjs 如何更改将耦合值传递到状态字段的方法?_Reactjs - Fatal编程技术网

Reactjs 如何更改将耦合值传递到状态字段的方法?

Reactjs 如何更改将耦合值传递到状态字段的方法?,reactjs,Reactjs,我的字段numberCoupleIdDelete处于以下状态: const [value, setValue] = useState({ numberCoupleIdDelete: [], }); 当我单击编号为3的id项目附近的input时: <input type="checkbox" onClick={() => props.deleteСoupleСategory(item.id)}/> 在状态下我有: n

我的字段
numberCoupleIdDelete
处于以下状态:

 const [value, setValue] = useState({
    numberCoupleIdDelete: [],             
  });
当我单击编号为3的
id
项目附近的
input
时:

<input type="checkbox" onClick={() => props.deleteСoupleСategory(item.id)}/>
状态下
我有:

numberCoupleIdDelete:[3]

然后单击id号为
7
的项目附近。我可以这样说:

numberCoupleIdDelete:[3,7]

但是我有:

numberCoupleIdDelete:[7]

也就是说,我的方法不是添加新的数组元素,而是重写当前数组的值。
如何更改将耦合值传递给字段
numberCoupleIdDelete

的方法如果我理解正确,只需使用扩展运算符进行数组解构:

const deleteСoupleСategory = (argDeleteCategory) => {
    setValue({
        ...value,
        numberCoupleIdDelete: [...value.numberCoupleIdDelete, argDeleteCategory]
    });
};

如果我理解正确,只需使用排列运算符进行数组解构:

const deleteСoupleСategory = (argDeleteCategory) => {
    setValue({
        ...value,
        numberCoupleIdDelete: [...value.numberCoupleIdDelete, argDeleteCategory]
    });
};

谢谢我还是想问你一件事。现在,当我将从id为3的项中删除复选标记时,改为:
numberCoupleIdDelete:[3]
我有:
numberCoupleIdDelete:[3,7,3]
如何修复它?@nion如果要从数组numberCoupleIdDelete中删除元素,可以使用:
setMyState((prevState)=>{return{…prevState,numberCoupleIdDelete:prevState.numberCoupleIdDelete.filter((x)=>x!=id)}}
其中id是您要筛选的元素谢谢!我仍然想问您一些问题。现在我将从id为3的项中删除复选标记,而不是此:
numberCoupleIdDelete:[3]
我有:
numberCoupleIdDelete:[3,7,3]
如何修复?@nion如果要从数组numberCoupleIdDelete中删除元素,可以使用:
setMyState((prevState)=>{return{…prevState,numberCoupleIdDelete:prevState.numberCoupleIdDelete.filter((x)=>x!=id)}
其中id是要筛选的元素