vue-photo-preview踩坑,el-table中一张错误图片导致全部图片无法放大,并且与懒加载v-lazy不兼容

需求:el-table中展示的图片,可以点击放大,并且使用懒加载(偶尔会有404的图片路径)


坑一: 一张404图片会导致全部图片无法放大,用@error解决

坑二: 但是马上发现如果用了vue-lazyload,则一定不会触发@error,改用原生img懒加载属性,如下图所示:

在这里插入图片描述
完整代码

<el-table-column
         label="图片"
          width="100">
           <template v-slot="scoped">
               <div class="imgDiv" >
                  <img v-show="!scoped.row.violation"
                  	  loading="lazy"
                      :src="scoped.row.url" 
                      :large="scoped.row.url"
                      :preview="scoped.row.url" preview-text=""
                      @error="errorImg(scoped.row)"
                      >
               </div>
          </template>
</el-table-column>
errorImg(row){
	//这里必须用$set
     this.$set(row, "violation" ,true)
      // 这里要延时处理
      setTimeout(()=>{  
       this.$previewRefresh();
      },1000)
  }

另外还有一个坑(三):
el-image 组件中虽然同时有懒加载和放大的功能,并且不会出现第一个坑,但是如果在 el-table 中使用,则在首屏未显示的图片将永远不会加载,不知道该如何解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值