Vue中的全球$ root事件永远不会到来

时间:2019-03-22 20:15:35

标签: vue.js

我有一个动态实例化的vue组件,该组件应通过事件与根vue实例进行通信。组件(对话框形式)使用RUN apk add libressl-dev 发出事件,而根节点使用this.$root.$emit()进行监听,并且没有事件到达。调试时,我看到两个不同的this.$root.$on()实例:

2 different $roots - wtf?

我在做什么错了?

https://codepen.io/anon/pen/XGoPmj

this.$root

更新:解决方案:TLDR:基本上,您必须在根vue实例和pass that instance to your constructor之后创建组件。

1 个答案:

答案 0 :(得分:3)

创建组件时,您需要指定父级。否则,$root将等于组件本身:

dialog = new StepForm({
  parent: root
}).$mount('#myForm');

[https://jsfiddle.net/stdob__/qcusdr67/]