vue的Element组件上传文件el-upload上传成功后清空

<el-upload action="#" ref="upload" list-type="picture" :show-file-list="true" :limit="1" :http-request="handleUpload">
        <el-button size="small" type="primary">点击上传</el-button>
      </el-upload>

上传完成后执行清空

this.$refs.upload.clearFiles()

或者

const mainImg = this.$refs.upload
          if (mainImg && mainImg.length) {
            mainImg.forEach(item => {
              item.clearFiles()
            })
          }

如果有多个组件可以使用:file-list,可以设置file-list="[]"

<el-upload action="#" ref="upload" :file-list="normal" list-type="picture" :show-file-list="true" :limit="1" :http-request="uploadAvatarNormal">
            <el-button size="small" type="primary">点击上传图片</el-button>
          </el-upload>

然后清空normal字段即可

还有种情况是需要修改组件key来实现清空的

timer: '',
<ImageCropping :imageUrl="companyform.imageUrl" @change="uploadHandler" imgType="imageUrl" :key="timer"/>

其中timer是需要修改的,每次新增或修改的时候修改timer的值即可

/** 新增按钮操作 */
handleAdd() {
  this.reset()
  this.open = true
  this.timer = new Date().getTime()
  this.title = '添加信息'
},

解决了之后可以给自己放松下,玩下这个解压的微信小游戏