在很多论坛博客看了如何使用mitt但是我写时却出现了问题
错误代码main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import mitt from 'mitt'
createApp(App).use(store).use(router).mount('#app')
createApp(App).config.globalProperties.$bus=new mitt()
然后在Home.vue对this.$bus进行打印
console.log(this.$bus)
this.$bus.on("itemImaeLoad",() =>{
console.log('-------')
})
然后就报错了打印的结果是undefined

检查了好久在网上找了很多资料都没发现是哪出了问题,自己又尝试每个组件单个引用mitt就不会报错,最后在main.js里修改了一点点代码解决了这个问题
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import mitt from 'mitt'
const app = createApp(App)
app.use(store).use(router).mount('#app')
app.config.globalProperties.$bus=new mitt()
修改过后再运行

原因是因为两个createApp(App),导致mitt无法添加进原型里面,导致undefined,使得报错,根本原因还没搞明白,有哪位大神知道原理也可帮我解解疑惑。
在尝试使用mitt事件总线时遇到问题,错误发生在main.js中,对`this.$bus`进行打印时显示undefined。经过排查,发现由于在main.js中两次创建了`createApp(App)`,导致mitt无法正确添加到原型链上,从而引发错误。通过删除多余的`createApp`实例解决了问题,但触发该问题的根本原因尚不清楚。
1万+

被折叠的 条评论
为什么被折叠?



