【发布时间】:2021-06-24 05:46:43
【问题描述】:
当此对象已存在时,我想更新 localStorage 选定对象的数量。它将在 else if 中更改触发器 handleAddCart 条件语句。 ***handleAddCart > else if
//this append function for concat
const appendToStorage = (name, data) => {
var prevItems = localStorage.getItem(name)
try{
prevItems = JSON.parse(prevItems);
} catch (e){
prevItems = []
}
localStorage.setItem(name, JSON.stringify(prevItems.concat(data)))
}
这是提交处理程序
const handleAddCart = () => {
//when there is no array stored
if (localStorage.getItem('cartList') === null) {
localStorage.setItem('cartList',JSON.stringify(cartList))
}
if (cartItem.size && cartItem.quantity) {
//1st when there is no array
if (!localData) {
appendToStorage('cartList', cartItem)
} else if (localData.some((item) => item.cartId === cartItem.cartId)) {
//when array contain same object
var itemPrice = localData.find((item) => item.cartId === cartItem.cartId);
} else {
//concat new object
appendToStorage('cartList', cartItem)
}
history.push('/shop')
setItemSize(null)
setSelectWarning(false);
} else{
setSelectWarning(true)
}
}
cartItem 是一个对象,而 cartList 是一个数组。 cartItem 是这样的-
CartItem = {
name: '',
cartId: '',
price: '',
size: '',
quantity: 1,
img: ''
}
CartList = []
【问题讨论】:
-
这段代码有什么问题?
-
一切正常。但我无法更新对象。请参阅 handleAddCart 第 11 行(带注释)> else if > 哪里需要更新对象
标签: javascript arrays arrayobject