Vue.js Vue监视未触发数组中的元素

Vue.js Vue监视未触发数组中的元素,vue.js,vue-component,Vue.js,Vue Component,我有两个部分。其中一个创建另一个的实例并将它们添加到数组中,然后我尝试监视它以执行某些函数,但它从不触发。我的结构如下所示: const Child = Vue.extend({ data() { triggerMe: false }, methods: { triggerSomething: function() { console.log('It's called for sure'); this.triggerMe = true;

我有两个部分。其中一个创建另一个的实例并将它们添加到数组中,然后我尝试监视它以执行某些函数,但它从不触发。我的结构如下所示:

const Child = Vue.extend({
  data() {
    triggerMe: false
  },
  methods: {
    triggerSomething: function() {
      console.log('It's called for sure');
      this.triggerMe = true;
    }
  }
});

const Parent = Vue.extend({
  data() {
    children: []
  },
  components: {
    child: Child
  },
  methods: {
    addChild: function() {
      this.children.push(new Child());
      this.children[this.children.length - 1].$watch('triggerMe', _ => console.log('Never called'));
    }
  }
});

如果它是唯一的一个,那么它就可以正常工作。如何解决这个问题?

我发现,
$watch
只有在组件安装到文档中的某个元素时才会触发。需要采取其他办法:

<scipt id="parent-template">
  <child
    @trigger="triggerThat"
  ></child>
</script>

<script>
// in Child
this.$emit('trigger', someData);

// in Parent
methods: {
  triggerThat: function(data) {
    console.log('I can hear you');
    console.log(data);
  }
}
</script>

//在儿童时期
这是。$emit('trigger',someData);
//父母
方法:{
触发器:函数(数据){
console.log(“我能听到你的声音”);
控制台日志(数据);
}
}

我不太清楚您想要实现什么。tot是否检查了有关Vue如何处理阵列更改的文档?您可能需要尝试
deep
watcher