[英]i can't get to reduce my product by 1 in my cart because i got an undefined problem
這是我的錯誤,我知道為什么會出現這個錯誤,我真的是 js 新手,似乎不知道為什么會發生這種情況。 如果你們可以幫助我,我將非常感激,在此先感謝
TypeError: Cannot read property 'qty' of undefined
TypeError: Cannot read property 'price' of undefined
這是我的購物車 model
module.exports = function Cart(oldCart){
this.items = oldCart.items || {};
this.totalQty = oldCart.totalQty || 0;
this.totalPrice = oldCart.totalPrice || 0;
this.add = function(item, id){
var storedItem = this.items[id];
if(!storedItem){
storedItem = this.items[id] = {item: item, qty: 0, price: 0};
}
storedItem.qty++;
storedItem.price = storedItem.item.price * storedItem.qty;
this.totalQty++;
this.totalPrice += storedItem.item.price;
};
this.reduce = function(id){
this.items[id].qty--;
this.items[id].price -= this.items[id].item.price;
this.totalQty--;
this.totalPrice -= this.items[id].item.price;
if(this.items[id].qty <= 0){
delete this.items[id];
}
}
this.removeItem = function(id){
this.totalQty -= this.items[id].qty;
this.totalPrice -= this.items[id].price;
delete this.items[id];
}
this.generateArray = function(){
var arr = [];
for (var id in this.items){
arr.push(this.items[id]);
}
return arr;
};
};
最有可能的是,您傳入的那個id
的項目在數組中不存在。 您可以添加一個檢查以僅在該項目存在時嘗試刪除該項目,如下所示:
this.reduce = function(id){
if(this.items[id]) {
this.items[id].qty--;
this.items[id].price -= this.items[id].item.price;
this.totalQty--;
this.totalPrice -= this.items[id].item.price;
if(this.items[id].qty <= 0){
delete this.items[id];
}
} else
console.log(“item does not exist”)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.