vue.js - 使用 EventBus 发送数据
问题描述
我试图在 Vue.JS 中使用 EventBus 传递一个对象,但它不起作用。
我创建了这样的 event-bus.js 文件:
import Vue from 'vue'
const EventBus = new Vue()
export default EventBus
然后在我的文件中 AI 导入了它
import EventBus from 'components/event-bus.js'
然后我用点击事件触发事件总线。它正在工作的点击事件。
likeQuestion(question) {
EventBus.$emit('likedQuestion', (question) => {
console.log(question)
})
}
在文件 B 中,我想获取总线中传递的数据,所以我导入了 EventBus,就像我在文件 A 中所做的一样,最后我尝试使用 Mounted 获取数据。
mounted () {
EventBus.$on('likedQuestion', function (question) {
console.log(question)
})
},
但它不起作用,console.log 甚至没有出现在控制台中。我做错什么了吗?
解决方案
emit
有效负载应该是数据而不是回调函数:
likeQuestion(question) {
EventBus.$emit('likedQuestion', question)
}
推荐阅读
- laravel - Laravel 中声明的命名空间在哪里?
- plugins - 无法在 codeceptjs 上运行 allure
- windows - 使用批处理脚本组织文件
- python - 我用 vim 修改了 base_profile。为什么我有“-bash:设置:找不到命令”?
- node.js - NPM 失败'http fetch 404'
- r - 在 ggplot2 中显示具有自定义颜色的图例
- cassandra - 如何在 Cassandra 中操作主键和集群列?
- powerbi - DAX:每天的平均不同值
- c# - 使用 Selenium 从网页中删除 Web 元素
- jquery - 表排序器过滤器在表中隐藏列时未隐藏