el-image预览大图 删除一张照片后预览无法显示

发布于 2022-09-12 13:19:42 字数 1417 浏览 11 评论 0

点击删除按钮后会报错 并且预览无图片显示
image.png
image.png
image.png
代码:

<!-- 添加图片 -->
    <el-upload
      action="#"
      :show-file-list="false"
      :auto-upload="false"
      accept=".png,.jpg,.jpeg"
      :on-change="onImportFileChange"
    >
      <el-button type="primary" icon="el-icon-plus">新增</el-button>
    </el-upload>

    <!-- 显示图片列表 -->
    <div class="add-image-list">
      <div v-for="(imgObj,index) in imgList" :key="imgObj.uid" class="img-content">
        <el-image
            :src="imgObj.url"
            class="image-row"
            :preview-src-list="imgPreview"
          ></el-image>
        <img src="@/assets/img/image_del.png" class="image-close" @click="delImage(index)" />
      </div>
    </div>
data() {
    return {
      imgList: [],
      imgPreview: []
    }
  },
  methods: {
    onImportFileChange(file) {
      file.url = URL.createObjectURL(file.raw)
      this.imgList.push(file)
      this.imgPreview.push(file.url)
    },
    delImage(index) {
      this.$set(this.imgList, this.imgList.splice(index, 1))
      this.$set(this.imgPreview, this.imgPreview.splice(index, 1))
    }
  }

求解,谢谢~

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

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

发布评论

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

评论(1

魂ガ小子 2022-09-19 13:19:42

delImage(index) {
  this.imgList.splice(index, 1)
  this.imgPreview.splice(index, 1)
}

你这样试试,splice删除数组元素可以更新到视图上,
你这种方式最后打印imaList和imgPreview里面有一项是undefined,
虽然不知道怎么出现的,但是可能和这个有关

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