[Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“

这篇具有很好参考价值的文章主要介绍了[Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

vue实现兄弟进程间的通信。


问题描述

我想实现VUE中兄弟组件的通信,除了VueX之外,还可以使用eventBus,这几个教程把eventbus讲的很详细。

(34条消息) Vue 兄弟组件之间的通信_coffee豆丿的博客-CSDN博客_兄弟组件

大部分教程都是这样,我看了一个小时的教程。但是,我按照他们的代码去做的时候,就是会给我报标题的错。然后我搜索这个报错,网上的资料也没有很多。我记录一下。


原因分析:

很多博客分析了原因。

1、可能是命名的问题:【与我无关】

(34条消息) this.$emit方法无效的原因_来吧,相约98的博客-CSDN博客_this.$emit不生效
2、可能是因为生命周期的问题,然后说要把接收方的mounted改成created啥啥的,这个问题确实很关键,但是没解决我的。【烦死了,哈哈,毁灭吧,哈哈】

(34条消息) Vue中bus报错TypeError: Cannot read property ‘$emit‘ of undefined_盏茶作酒的博客-CSDN博客_cannot read property '$emit' of undefined

3、最后,也就是终极原因,考虑到VUE的事件监听机制。监听必须要在触发之前,也就是说$on的执行必须要在$emit之前。【听我说谢谢你】

(34条消息) vue bus.$emit触发第一次$on监听不到_microcosm1994的博客-CSDN博客_vue bus触发第一次,后续不触发

555555,我就为这么一个小问题,我解决了一个小时5555。


解决方案:

解决方案就是:反正我看不懂这话,懒得看了

用法:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。

你只需要把emit函数的那一句变一变就好了。

this.$nextTick(function () {
        // DOM 现在更新了
        eventBus.$emit('msg',route)
      })

对,没错,就是这么简单。

对我自己想说的

我喜欢这样的自己。高冷冷在它的博客里说,任何事情都可以变的很简单,我们需要有耐心,然后为这件事情做足充分的准备。

努力coding,做一个对程序代码有耐心和好奇心的银。555文章来源地址https://www.toymoban.com/news/detail-408096.html

到了这里,关于[Vue warn]: Error in created hook: “TypeError: Cannot read properties of undefined (reading ‘$on‘)“的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包