我有一个对象,该对象在React挂钩中存储为数据状态。
const [data, setData] = useState();
数据如下所示: data
我想要实现的是,除了需要通过process_id过滤selected_process之外,我将返回相同的数据状态,例如:删除带有process_id 419的第一个对象。
编辑:
我试图做:
setData((prevData) => prevData.order.selected_process.filter(item => item.process_id !== process_id));
但是数据看起来像这样:
取而代之的是获取所有数据+过滤后的数据。
谢谢!
答案 0 :(得分:0)
您想更改数据并从列表中移出一项,只要您想在代码中,都可以这样做。.
function Comp(){
const [data, setData] = useState();
function setTheList(unwantedItemId){
setData(prevData=>({...prevData,
order : { ...prevData.order ,
selected_process :
prevData.order.selected_process.filter(item=>
item.id!==unwantedItemId
)
}}))
}
//... your code
reutrn <OtherComp/>
}
这个答案是一个可行的解决方案,但看来您的州需要某种重构,以便能够以更简单的方式更改它...我建议将州分为多个州...