1

我用 构建了一个 dropzone vue2-dropzone,我只想显示最后一条错误消息。要获取错误消息,我使用方法getRejectedFiles(),它为我提供了所有失败上传的数组。然后我使用 `v-for 循环遍历这个数组,并显示最后一项(当前错误)。

问题:但是一旦上传了另一个文件(没有错误),我希望之前的错误消息消失。目前它仍然存在,因为成功上传后数组不会改变。我想我必须将该方法收集的主数组getRejectedFiles()重置为零,而无需重置整个 dropzone。有没有办法做到这一点?

这是我的代码的简化版本:

<dropzone [..] @vdropzone-error="collectErrors()"></dropzone>

该方法使用 getRejectedFiles() 收集错误,如下所示:

method:{
    collectErrors:function(){
        this.DropzoneErrorMessages = this.$refs.dropzone.getRejectedFiles()
        // adding some text changes to the error here
    }
}

在模板中,错误显示如下:

<p v-if="this.DropzoneErrorMessages.length > 0">  //not displayed if no errors
    <template v-for="(error,index) in this.DropzoneErrorMessages">
        <span v-if="index==this.DropzoneErrorMessages.length">{{error.message}}</span>
    </template>
</p>
4

1 回答 1

1

vdropzone-success文件上传成功时会发生一个事件。您的dropzone容器可以侦听该事件,并清除DropzoneErrorMessages其处理程序中的数组:

<template>
  <dropzone @vdropzone-success="uploadSuccess" />
</template>

<script>
export default {
  methods: {
    uploadSuccess(file) {
      this.DropzoneErrorMessages = []
    }
  }
}
</script>
于 2020-04-06T02:23:45.683 回答