因为是非父子间的通信我按照网上的教程键了一个bus.js文件import Vue from 'vue'export default new Vue()第一个组件login.vue用来$emitthis.usermsg是一个对象 bus.$emit('usermessage', this.usermsg) this.$router.push({name: 'mine'})第一个组件mine.vue用来$emitdata() { return {
userData: {},
}
},
created() {
bus.$on('usermessage', (usermsg) => { console.log(this.msg) console.log(usermsg.name) this.userData= usermsg
console.log('mine接收到的usermsg') console.log(this.userData)
})
mounted() { console.log(this.userData)
}userData的数据不会发现变化,赋值不生效。是不是this指向错了,还是不改这样赋值的,试了好多种方法了,一脸懵
2 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
首先,你的mine.vue必须先初始化了,在
然后,你的this指向没错,因为你用了箭头函数,详情可以看下箭头函数的this指向问题。(虽然不知道你this.msg是想干啥,明明data里面没有msg)
另外你的思路是登录获取到用户信息后展示在mine.vue页面吧,建议你用vuex保存用户信息,这样就可以在其他页面拿到了
添加回答
举报
0/150
提交
取消