Cannot read properties of undefined (reading '$on)
1. 错误信息
Vue3 中使用 $on 触发事件报错,错误信息如下
2. 改正前
简单看下我的组件做的(错)事
// ListDemo.vue
import event from './event'
methods: {
addItem(title) {
console.log("兄弟组件之间使用自定义组件", title);
}
},
mounted() {
// 绑定自定义事件 这里使用函数名,而不是直接()=>{}是因为方便解绑
event.$on("addItem", this.addItem);
},
beforeUnmount() {
// 及时销毁,否则可能造成内存泄露
event.$off("addItem", this.addItem);
}
// InputDemo.vue
import event from "./event";
methods: {
addItem() {
event.$emit("addItem", this.title);
}
}
</script>
3. 错误分析
因为最开始是引入一个新的 Vue 实例,所以最初没有看到 deprecated 的信息,后来直接 this.$on 才想起来它在 Vue3 中已经被废弃了
打开链接 eslint.vuejs.org/rules/no-de… 可以看到它提示我们引入 mitt ,然后根据它的提示改完就好啦。
当然,还得要导入依赖,并且将 mitt 作为单独的文件暴露出事件总线对象
npm i mitt -s
这里有一个 mitt库(事件总线) 的使用,还是挺详细滴
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tangiibfh
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24