【发布时间】:2019-10-16 15:53:13
【问题描述】:
我有一个通过axios调用用户数据的方法
// method name getUser()
const user = await axios.get(`/user/${this.id}`)
this.id = user.data.data.id
this.name = user.data.data.name
this.email = user.data.data.email
然后我在挂载中使用它,所以如果用户访问/profile/id
它会加载用户数据
mounted() {
this.getUser()
}
我尝试上传一张图片,并在图片上传成功后使用全局事件总线发出事件。
this.$event.$emit('IMAGE_UPLOAD')
那就把它也抓到挂载上
mounted () {
// if I remove this it works, but I need to preload the data of the user
this.getUser()
this.$event.$on('IMAGE_UPLOAD', () => {
this.getUser()
})
}
我的问题是它不会改变图像,这意味着如果我在已安装的内部也调用 this.getUser(),我仍然需要刷新页面。
所以我想知道如何解决这个问题。 谢谢!
【问题讨论】:
-
我不认为它是重复的,因为问题是关于如何解决不重新加载页面以查看图像上传更改的问题。
-
您确认您的事件处理程序正在被调用吗?是否重新加载相同的图像 ID?
-
是的,它被调用了。当我在mounted上注释掉
this.getUser()上的电话时,它工作正常。 -
我需要在访问个人资料时显示数据,然后如果用户单击图像,将弹出一个模式,用户可以在其中拖放图像,然后一旦完成图像应该显示新上传的图像。