有绑定file-list,又是多文件上传,在上传成功过的回调内有将返回值push到file-list数组的操作。
<el-upload
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
:headers="headers"
:data="dataObj"
:file-list="form.imgs"
:limit="20"
:on-success="handleImageSuccess"
:action="action"
multiple
>
</el-upload>
handleImageSuccess(response) {
const { url } = response.data
that.form.imgs.push({
imgPath: url
})
},
这样出现了明明是分多次上传文件,但是上传回调只触发了一次的问题,push进file-list数组的数据也只有最后一次上传文件的回调内容。这里的解决方式是用timeout为push操作进行延迟。
handleImageSuccess(response) {
let that = this
setTimeout(()=>{
const { url } = response.data
that.form.imgs.push({
imgPath: url
})
},1000)
},