Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 除非强制更新,否则不会更新计算的Vue_Javascript_Vue.js - Fatal编程技术网

Javascript 除非强制更新,否则不会更新计算的Vue

Javascript 除非强制更新,否则不会更新计算的Vue,javascript,vue.js,Javascript,Vue.js,我必须添加额外的行,强制Vue重新计算computed prop,具体如下: var foo = this.groups; this.groups = {}; this.groups = foo; 从这把小提琴中可以看出:。如果没有这些,则不会更新可用的组 为什么会这样?用组更新组的干净方法是什么 已尝试将组添加到“深度监视”,但没有帮助。使用$set为数据对象添加新属性: methods: { add_group: function(key, name) { thi

我必须添加额外的行,强制Vue重新计算computed prop,具体如下:

var foo = this.groups;
this.groups = {};
this.groups = foo;
从这把小提琴中可以看出:。如果没有这些,则不会更新可用的组

为什么会这样?用
组更新
组的干净方法是什么


已尝试将
添加到“深度监视”,但没有帮助。

使用
$set
为数据对象添加新属性:

   methods: {
    add_group: function(key, name) {
      this.$set(this.groups, key, {key, name});
    },
  }

描述的vue反应性

使用
$set
为数据对象添加新属性:

   methods: {
    add_group: function(key, name) {
      this.$set(this.groups, key, {key, name});
    },
  }

描述的vue反应性

vue不跟踪添加到对象的新元素:

一种解决方案是使用
Vue.set
或重新分配对象,如下例所示:

new Vue({
  el: "#app",
  data: {
    groups: {1: {key: 1, label: 'Those guys'}},
  },

  computed: {
    available_groups: function() {
        return [{value: 0, label: 'Anyone'}].concat(Object.values(this.groups)); 
        },
    },
  methods: {
    add_group: function(key, name) {
        Vue.set(this.groups, key, {key: key, name: name})
    },
  }
})

Vue不跟踪添加到对象的新元素:

一种解决方案是使用
Vue.set
或重新分配对象,如下例所示:

new Vue({
  el: "#app",
  data: {
    groups: {1: {key: 1, label: 'Those guys'}},
  },

  computed: {
    available_groups: function() {
        return [{value: 0, label: 'Anyone'}].concat(Object.values(this.groups)); 
        },
    },
  methods: {
    add_group: function(key, name) {
        Vue.set(this.groups, key, {key: key, name: name})
    },
  }
})