老师,更新state里面的数据,我试了三种方法都可以
来源:11-8 根据购物车选中状态计算订单金额(2)
目訫
2021-03-20
第一种:
changeCartItemChecked (state, params) {
const { shopId, productId } = params
const product = state.cartList[shopId][productId]
product.check = !product.check
state.cartList[shopId][productId] = product
}第二种:
changeCartItemChecked (state, params) {
const { shopId, productId } = params
const product = state.cartList[shopId][productId]
product.check = !product.check
}第三种:
changeCartItemChecked (state, params) {
const { shopId, productId } = params
state.cartList[shopId][productId].check = !state.cartList[shopId][productId].check
}老师,这种设计就让人很苦恼,究竟哪一种才是正确的?
而上一个方法又不是这样的
changeItemInfo (state, payload) {
const { shopid, productId, productInfo, num } = payload
let shopInfo = state.cartList[shopid]
if (!shopInfo) shopInfo = {}
let product = shopInfo[productId]
if (!product) {
product = productInfo
product.count = 0
}
product.count = product.count + num
if (num > 0) {
product.check = true
}
if (product.count < 0) {
product.count = 0
}
shopInfo[productId] = product
state.cartList[shopid] = shopInfo
},如果不写最后一句话state.cartList[shopid] = shopInfo,页面不会重新显示
究竟两者存在什么区别?
写回答
1回答
-
如果你改一个基础类型,比如说布尔值,三种都行。但如果你改一个引用类型,一定要重新设置一下值
032021-03-23
相似问题