首页 > 解决方案 > 使用 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 甚至没有出现在控制台中。我做错什么了吗?

标签: vue.js

解决方案


emit有效负载应该是数据而不是回调函数:

likeQuestion(question) {
      EventBus.$emit('likedQuestion', question)
    }

推荐阅读