vue3 mitt事件总线在onMounted里面没生效的原因

895 阅读1分钟

上代码

4404fc9909bcc1af1f7c11b73500efd.png

我是想在页面一打开就发送一个事件,我在另外一个页面的onMounted里面监听sendData,测试,一打开也输出了111111111,但是另外一个页面没有收到state.menuAllData数据。

  • 排查问题,我猜想是,当页面挂载完成之后立即触发 getMenuData('all') 函数时,state.menuAllData 可能还没有被赋值,因此导致 emitter.emit("sendData", state.menuAllData) 没有触发 sendData 事件

解决:用nextTick包裹起来,在页面加载的第一次,我就发送这个事件,并且在页面挂载完成之后发送数据就可以了

444dad219034672c44fb8bfaf8693c9.png