VueJS 在 mixin 中使用 EventBus

问题描述

这是我的代码

一个随机组件:

watch: {
          'notifications' : {
            handler(newVal) {
              let questionnaireTypes = ['TwoDaysConnected','OneWeekConnected','TwoWeekInactive']
              if(newVal) {
                this.checkdisplayQuestionnaire(questionnaireTypes)
              }
            },immediate: false
          }
        },

mixin_common.js 中的方法

    import EventBus from "./event-bus.js"

export default window.mixin_common = {
    methods: {
        checkdisplayQuestionnaire(questionnaireTypes) {
          let stateNotifications = this.$store.state.notifications
          EventBus.$emit('openQuestionnaireExperimentationModalWithDatas',stateNotifications)
        }
    }

我想用 EventBus 打开的模态所在的组件:

import EventBus from "./event-bus.js"

     methods: {
        openModal() {
          this.$bvModal.show('questionnaireExperimentationModal')
        },},mounted() {
        EventBus.$on('openQuestionnaireExperimentationModalWithDatas',(notifications) => {
          this.notifications = notifications
          this.openModal()
        })

事件总线.js:

import Vue from 'vue'

const EventBus = new Vue();

export default EventBus;

实际上,模态不会打开,它起作用的唯一方法是将 EventBus.$emit('openQuestionnaireExperimentationModalWithDatas',stateNotifications) 直接放在随机组件中,而不使用 mixin,但如果可能,我需要使用 mixin 打开它。

有人知道怎么做吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)