解决Vue多维数组修改某一值后页面不渲染的问题

解决Vue多维数组修改某一值后页面不渲染的问题

问题如下:

this.data为vue的data中的数据,它是一个数组,数组里面是对象,数组中有一个selected属性,当在初次渲染完毕后,修改selected的值时,DOM并没有再次渲染。

使用了this.$set()登方法,但是不是很好。

        // 判断是否是编辑模式,否则直接打开图书开始阅读
        if (this.isEditMode) {
          this.data.forEach((item) => {
            if (item.fileName === book.fileName) {
              item.selected = !item.selected
            }
          })
          // 强制刷新DOM,解决vue修改对象属性不渲染DOM
          this.$forceUpdate()
          const selectedList = this.data.filter((item) => {
            return item.selected === true
          })
          this.setShelfSelectedList(selectedList)
        } else {
          console.log("打开图书,开始阅读")
        }
      }

 解决办法:

在修改完数据之后,使用  this.$forceUpdate() 强制渲染DOM。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值