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是要筛选的元素