如何解决Axios 事件处理程序无法在 EventBux
我的 VueJS 组件 A 中有以下代码:
<script>
import EventBus from '@/event-bus.js'
export default {
name: 'ProductSearch',methods: {
getMaterials(materialNum) {
return new Promise((resolve,reject) => {
this.$axios.get('url')
.then((response) => { ... })
.catch((error) => { ... })
.then(() => {
// always executed
// this.$root.$emit('message','hello')
EventBus.$emit('message','hello')
})
})
}
}
}
</script>
因为 this.$root.$emit('message','hello')
不起作用,我使用了 EventBus
(after reading this post)
我另一个组件,我有这个代码:
<script>
import EventBus from '@/event-bus.js'
export default {
name: 'CountrySelect',mounted() {
EventBus.$on('message',showMessage)
},methods: {
showMessage(message) {
console.log(message)
}
}
}
</script>
但是,这不起作用并且在页面加载时失败并出现以下错误:
[Vue warn] Error in mounted hook: "TypeError: Cannot read property '$on' of undefined"
如何在不使用父级的情况下设置组件间事件并在 axuios 事件处理程序中进行这项工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。