解决elementUI 中 el-avatar组件头像切换不更新问题

2019-12-13 12:59:53 浏览数 (1)

问题描述: 当使用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,或者在文档方面做一下相关说明。

0 人点赞