2 回答
TA贡献1878条经验 获得超4个赞
问题是您缺少以下作业map:
this.Bill = this.Bill.map...
但是,作为建议,您可以编写一种更实用的方法:
addToCart(item: SalesScreenItemsModel) {
const itemExists = this.Bill.some(element => element.itemId === item.itemId);
if (itemExists) {
this.Bill = this.Bill.map(element => ({
...element,
itemQuantity: element.itemQuantity + (element.itemId === item.itemId ? 1 : 0)
}));
} else {
this.Bill = [...this.Bill, item];
}
}
对于remove:
deleteBillItem(itemIndex: number) {
this.Bill = this.Bill.filter((element, index) => index !== itemIndex);
}
另外,Bill这不是数组/列表的最佳名称:)
TA贡献1790条经验 获得超9个赞
添加项目时尝试将 item.itemQuantity 设置为 1
addToCart(item: SalesScreenItemsModel) {
// tslint:disable-next-line: variable-name
const itemIndex=this.Bill.find((billItem) => item.itemId == billItem.itemId);
if(itemIndex == -1){
item.itemQuantity=1;
this.Bill.push(item);
return;
}
this.bill[itemIndex].itemQuantity+=1;
}
- 2 回答
- 0 关注
- 75 浏览
添加回答
举报