提供数据
this.$bus.$emit('userDate',response.data.sysname)
接收数据
this.$bus.$on('userDate',(r)=>{
console.log("-----"+this.UserName)
this.UserName=r
console.log("-----"+this.UserName)
})
问题描述
使用使用一个事件车(总线)的方式实现兄弟组件之间的通信,在接收数据时,当前组件获取到的数据一直未null
首先考虑是不是没有执行这一步代码,随便打印一段信息,控制台正常输出
确认监听事件
o
n
的
周
期
确
实
在
m
o
u
n
t
e
d
尝
试
使
用
t
h
i
s
.
on 的周期确实在 mounted 尝试使用 this.
on的周期确实在mounted尝试使用this.nextClick ,无效
只要页面没有强制刷新,存在组件切换,bus.$on方法会多次绑定,造成事件多次触发。
解决
在每次绑定事件前,先解绑该事件:
this.$bus.$off('userDate')
this.$bus.$on('userDate',(r)=>{
console.log("-----"+this.UserName)
this.UserName=r
console.log("-----"+this.UserName)
})