Reactjs 如何删除aray对象中的一个项,然后更新状态?

Reactjs 如何删除aray对象中的一个项,然后更新状态?,reactjs,Reactjs,我有一个状态“Bill”,我想删除“Product”中带有“ProductID”的项目之一。那我怎么做呢 Bill = { "Bill_ID" : "a00231", "Products" : [ { "ProductID" : "P0203", "ProductName" : "ABCD" }, { "ProductID" : "P023243", "ProductName" : "ZYZ" } ] }

我有一个状态“Bill”,我想删除“Product”中带有“ProductID”的项目之一。那我怎么做呢

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);