老师,更新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
相似问题