我正在尝试在购物车中保存一系列“项目”。但是在其他部分继续时,会发生错误“未捕获的TypeError:无法读取null的属性'items'”,请帮助该代码出问题
var existing_cart = localStorage.getItem("cart");
existing_cart = JSON.parse(existing_cart);
console.log(existing_cart);
if (existing_cart.items instanceof Array) {
existing_cart.items.push({
'article_number': article_no,
'quantity': quantity,
'item_name ': item_name
});
console.log(existing_cart);
localStorage.setItem("cart", JSON.stringify(existing_cart));
} else {
var products = [{
'article_number': article_no,
'quantity': quantity,
'item_name ': item_name
}];
var cart = {
'items': products
}
localStorage.setItem("cart", JSON.stringify(cart));
toastr.success('Have fun storming the castle!', 'Miracle Max Says');
}
答案 0 :(得分:0)
第一次运行代码时,本地存储中将没有任何内容,因此existing_cart
将是null
。您需要检查一下。
更改
if (existing_cart.items instanceof Array) {
收件人:
if (existing_cart) {
答案 1 :(得分:0)
var existing_cart = localStorage.getItem("cart") || '{"items":[]}';
在第一次运行代码的情况下,localStorage可能没有该元素,在这种情况下,它将返回null或未定义。在这种情况下,您可以将其默认为JSON,这样就可以使逻辑流不遇到空指针异常。