vue-awesome-swiper 懒加载图片不更新问题

swiper-lazy 图片不更新问题

当数据发生变化是,所有信息都发生变化了唯独图片还是原来的;
网上查的资料是在img 加上一个 :key="图片地址"!
结果是图片是发生变化了,但是不会加载,直接白屏给你,需要左右滑动一下才能加载出来。。。。。

<img :data-src="vo.pic" :key="vo.pic" class="swiper-lazy actor-img"   />

我自己尝试的解决方法二:

在 整个swiper组件中 使用v-if 渲染,数据更新后 跟个 this.state = false几秒后在this.state = true,图片更新和加载问题解决了!

this.state = false;
setTimeout(()=>{
 this.state = true
},100)

但是

这么一来会出现一系列未知异常,首先已知的 左右翻页按钮失效。

image.png

不知道大家有没有遇到类似的问题、如何解决!

阅读 4.2k
1 个回答

使用第二种办法解决了,前提是不能使用计算属性获取 swiper,这绝对是个坑,网上有很多资料都是这么写的,使用 了 v-if 后 计算属性就没法获取 ref了。
原来的代码
html

<swiper v-if="state" :auto-update="true" class="actor-list" :options="swiperOption" ref="Swiper">
  computed: {
     //计算属性
     swiper() {
      return this.$refs.Swiper.swiper;
    }
  },

搬迁到updated生命周期重新初始化就ok了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题