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

发布于 2022-09-12 04:06:32 字数 634 浏览 16 评论 0

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

木緿 2022-09-19 04:06:32

使用第二种办法解决了,前提是不能使用计算属性获取 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了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文