el-avatar组件头像切换不更新问题

1,201 阅读2分钟

前言

  • 在线音乐戳我呀!
  • 音乐博客源码上线啦!
  • 相信在开发中大部分同学都使用 elementtUi 作为搭建项目的首选,今天用到el-avatar组件头像切换,图片不显示问题。
  • 下面介绍下我在项目中是如何分析解决该问题

需求

【音乐博客】IT知识模块中的列表显示图片。

问题描述

在列表中,使用el-avatar组件头像作为展示图片,第一页是有图片的,在点击第二页,重新切换为第一页时,发现第一页的图片不展示。

问题分析

起初想的是不是接口没有及时返回图片url,经过不断的测试,发现如果页面进来的时候只要头像加载成功了,那么再去修改头像,头像是会自动刷新的。然后就去翻看了dom信息,发现当头像加载失败时,dom是没有头像img标签的,加载成功就存在img标签。

代码如下:

<el-avatar
  shape="square"
  :size="150"
  fit="fill"
  class="image"
  :src="data.photo"
/>

一开始发现这个问题的时候,第一反应就想到接口没有返回url。查看发现有,我就想是不是标签的问题,我同样适用img标签放,发现图片正常显示,那就是el-avater组件的问题了。

解决方案

加上了一个key属性,没想到就真的可以了,由此可见,key在组件渲染还是有很大用处的。

代码如下:

<el-avatar
  :key="data.photo"
  shape="square"
  :size="150"
  fit="fill"
  class="image"
  :src="data.photo"
/>

参考文章

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

以往推荐

Vue-Cli3搭建组件库

Vue实现动态路由(和面试官吹项目亮点)

项目中你不知道的Axios骚操作(手写核心原理、兼容性)

VuePress搭建项目组件文档

koa2+vue+nginx部署

vue-typescript-admin-template后台管理系统

原文链接

juejin.cn/post/694248…