Reactjs 如何删除aray对象中的一个项,然后更新状态?
我有一个状态“Bill”,我想删除“Product”中带有“ProductID”的项目之一。那我怎么做呢Reactjs 如何删除aray对象中的一个项,然后更新状态?,reactjs,Reactjs,我有一个状态“Bill”,我想删除“Product”中带有“ProductID”的项目之一。那我怎么做呢 Bill = { "Bill_ID" : "a00231", "Products" : [ { "ProductID" : "P0203", "ProductName" : "ABCD" }, { "ProductID" : "P023243", "ProductName" : "ZYZ" } ] }
Bill = {
"Bill_ID" : "a00231",
"Products" : [
{
"ProductID" : "P0203",
"ProductName" : "ABCD"
},
{
"ProductID" : "P023243",
"ProductName" : "ZYZ"
}
]
}
删除产品项后如何更新状态?我想您可以使用
pop()
方法。您可以从products数组中弹出最后一个元素,并查看弹出的元素。比如:
var poppedElement = Bill.Products.pop();
console.log(Bill) //Bill withoug last Products element
console.log(poppedElement) //just the last element of Products
我不确定这是否会在我脑海中完全发挥作用,但希望至少能给你一个起点:)
有关更多信息,请查看此链接:
让我知道进展如何 您可以在bill.products
数组中使用,如下所示(注意它必须是!=
而不是=
)
将this.state视为不可变的
由于您的状态
在对象中包含数组,因此我建议使用
请发布代码,要求解决方案而不是最初的挣扎是没有帮助的。可能的重复假设他想删除最后一项啊,忘记了“ProductId”,被冲昏头脑了,对不起!
bill.products.filter(x => x != yourDesiredToBeDeletedId)
let newBill = _.cloneDeep(this.bill);
newBill.products = newBill.products.filter(x => x != yourDesiredToBeDeletedId);
this.setState(bill: newBill);