问题描述: 当使用el-avatar组件时,如果刷新页面时,el-avatar图片加载失败了,那么el-avatar组件就会进入到失败的事件中,就像下图一样:
头像加载失败
这时候去修改头像,那么头像修改成功了,但是图片并不会自动加载,而是需要再去刷新一下浏览器,那么这就违背了事情的初衷了。 起初想的是不是因为vuex的getter没有及时更新头像的url信息,就去查了很多相关的资料,最后还是没能解决,经过不断的测试,发现如果页面进来的时候只要头像加载成功了,那么再去修改头像,头像是会自动刷新的。然后就去翻看了dom信息,发现当头像加载失败时,dom是没有头像img标签的,加载成功就存在img标签。如下图:
头像加载失败dom节点图
头像加载成功dom节点图
所以就猜想,只要dom存在,那么就能自动刷新头像图片,所以又去element-ui官网看了一下,并没有找到想要解决的思路。
没办法,再去百度了一波elementui el-avatar组件加载图片失败,再修改图片地址,组件不再渲染
。
终于发现还是有人和我一样的问题的。
2019-08-23 解决elementUI 中 el-avatar组件头像切换不更新问题 看了一下,他的问题大致和我的差不多,所以就在组件上试了一下,也加上了一个key属性,没想到就真的可以了,由此可见,key在组件渲染还是有很大用处的。
代码语言:javascript复制 <el-avatar v-if="circleUrl" :size="avatarSize.size" :src="circleUrl" alt="用户头像" :key="circleUrl" >
<i class="el-icon-plus avatar-uploader-icon"
:style="{width:avatarSize.width,height:avatarSize.height,'line-height':avatarSize.lineHeight,'font-size':avatarSize.fontSize}"></i>
</el-avatar>
最后希望element-ui也能及时更新一下这个相关的bug,或者在文档方面做一下相关说明。