首页 > 编程语言 > 详细

computed计算属性监听不到数组元素变化的问题

时间:2020-03-23 01:24:45      阅读:493      评论:0      收藏:0      [点我收藏+]

简单记录一下这次遇到的问题

在methods中的某个事件会改变arr数组中的元素

clickBtn () {
  this.arr[0] = false
}

 

但在computed中监听不到这个数组中元素的变化,

isAble() {
  if (this.arr[i]) {
    return true;
  }
  return false;
}

解决办法就是在methods中这样写

clickBtn () {
  this.$set(this.arr, 0 ,false)
}

这样computed就可以检测到啦

this.$set()的官方解释是这样的

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为 Vue 无法探测普通的新增属性 (比如 this.myObject.newProperty = ‘hi‘)

https://cn.vuejs.org/v2/api/#Vue-set

补充:

当你给你个对象添加一个属性之后在控制台可以输出,但视图没有更新,这个时候就需要用到this.$set()了

这种情况也可以在方法中的第一行添加这样一句

this.$forceUpdate();

这样可以进行视图层重新渲染

computed计算属性监听不到数组元素变化的问题

原文:https://www.cnblogs.com/wuyufei/p/12549494.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!