【发布时间】:2019-02-22 04:45:26
【问题描述】:
我无法 $emit 将事件从子组件传递到其父组件。
我可以成功发送事件,但无法在父级中接收。
Results.vue(孩子):
<a href="#" v-on:click="sendResultValues"></a>
//
methods: {
sendResultValues: function () {
this.$emit('send-result-values', 'carrier');
}
},
当我点击 <a> 时,我可以使用 Vue DevTools 看到 $emit 事件被触发:
但是,console.log 中没有收到任何内容,因为我的代码如下(父级):
Input.vue(家长):
<search-results></search-results> //Results.vue component
<search-popover v-on:send-result-values="showResultData"></search-popover>
//
methods: {
showResultData: function () {
console.log("Data received from child: ")
}
},
【问题讨论】:
-
results.vue是search-popover的组件还是results.vue是search-popover的一部分? -
在我的
Input.vue(Parent) 文件中,我有这两个组件:<search-results></search-results>和<search-popover></search-popover> -
不知道,似乎有效。 codesandbox.io/s/0pwz408prp 编辑沙箱,使其更类似于您的实际 vue
-
嗯,你需要在
<search-results></search-results>上收听事件,而不是在<search-popover></search-popover>上 -
您将处理程序设置在搜索弹出窗口上,但发出事件的是搜索结果,如图所示
标签: javascript vue.js vuejs2