我有一个州"比尔"我想删除" Product"中的一个项目使用" ProductID"。那我怎么能这样做呢?
Bill = {
"Bill_ID" : "a00231",
"Products" : [
{
"ProductID" : "P0203",
"ProductName" : "ABCD"
},
{
"ProductID" : "P023243",
"ProductName" : "ZYZ"
}
]
}
如何在删除产品项后更新状态?
答案 0 :(得分:0)
我认为您可以使用pop()
方法。您可以弹出products数组中的最后一个元素并查看弹出元素。类似的东西:
var poppedElement = Bill.Products.pop();
console.log(Bill) //Bill withoug last Products element
console.log(poppedElement) //just the last element of Products
不确定这是否会完全脱离我的头脑,但希望至少会给你一个起点:)
点击此链接了解更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop
让我知道它是怎么回事!
答案 1 :(得分:0)
您可以在bill.products
数组上使用filter,如下所示(请注意,!=
不是==
)
bill.products.filter(x => x != yourDesiredToBeDeletedId)
将this.state视为不可变
由于您的state
包含对象中的数组,我建议使用lodash's cloneDeep。
let newBill = _.cloneDeep(this.bill);
newBill.products = newBill.products.filter(x => x != yourDesiredToBeDeletedId);
this.setState(bill: newBill);