VUE+vant-ui电商项目 购物车页面,修改数组中的值后发现页面没有同步渲染

在Vue结合Vant-UI开发电商APP购物车功能时遇到一个问题,当修改购物车数组中checkBox的值时,页面未能自动更新。为解决这个问题,尝试了两种方法:1) 使用Array.map创建新数组;2) 应用Vue的this.$set方法。在单选商品的checkBox场景下,使用this.$forceUpdate()强制更新视图,从而实现了页面同步。

最近用vant-ui+vue做了一个电商APP,在做购物车页面checkBox时发现,点击checkBox绑定的值变了,但页面没有同步刷新,最后的解决方案如下:
1.利用map返回新数组

            this.cartInfo =   this.cartInfo.map( item => {
                    item.isCheck = this.orderChecked;
                    item.goods = item.goods.map(item2 => {
                         item2.isCheck = this.orderChecked;
                         return item2;
                    })
                    return item;
                })

2.vue的set方法

this.cartInfo.forEach( (item,index) => {
                   item.isCheck = this.orderChecked
                   item.goods.forEach(item2 => {
                       item2.isCheck = this.orderChecked
                   })
                   this.$set(this.cartInfo,index, item)
               })

上面是全选按钮。点击店铺选择店铺下的所有商品如下:

shopCheck(isCheck,index) {
            this.cartInfo[index].goods =  this.cartInfo[index].goods.map( item => {
          
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值