已完成带进度的多图上传,但是没弄明白如何删除某一张图片然后终止这张图片的上传。
比如现在上传的图片数组有三张图片,分别有对应的上传进度监控,当删除第一张图片,会导致第一张和第二张都终止上传,然而只删除最后一张就没事。
排查结果发现是,删除图片数组里某个元素,index变了,但上传还是对应的之前的index,请问各位大大是怎么解决的?
关键代码如下
data: {
fileList: [],
uploadTask: {}
}
uploadFile: function() {
var fileList = this.data.fileList
fileList.map((file,index)=>{
this.data.uploadTask[index] = wx.cloud.uploadFile({
// ...
// setData
})
that.data.uploadTasks[index].onProgressUpdate((res)=>{
// ...
// setData
})
})
}
deleteFile: function(e) {
const { index, name } = e.detail
var fileList = this.data.fileList
if(fileList[index].status == 'uploading'){
that.data.uploadTasks[index].abort()
// 如果没有下面这句,不会从fileList里删除,但会正常终止上传这一张图片
fileList.splice(index, 1);
// 如果加上上面这句,从fileList里删除,但同时会导致当前和下一个图片都会终止上传
}
}
找不到办法捉急啊。。
没人知道嘛?