[ElemeFE/element]开启show-file-list=true的情况下before-upload方法return false终止上传的时候,上传列表中会出现被终止上传的文件item(且无法remove)

2024-08-13 656 views
8

回答

6

确实有这个问题,我也碰到了,如下图后面2个框就是beforeUpload返回false时出现的

image

6

找了个办法曲线救国,哈哈,beforeUpload返回false之前,先把当前文件列表临时存起来,然后清除文件列表,最后再给组件重新定义文件列表,具体代码如下,临时解决下,等待官方最终解决吧

var me = this; var tmpFiles = _.clone(me.imageList); me.$refs.uploadAvatarUpload.clearFiles(); me.imageList = tmpFiles;

用户体验上感觉不出差异

2

@yinshuang100 你这个imagelist是自己定义的吗? 跟组件本身的fileList没关系吧 beforeUpload只有一个file参数

1

@huangkuikui 我的imageList就是el-upload的属性file-list绑定的值

4

@yinshuang100 同样被这个问题困扰...请问你那个.clone方法能单独提取出来嘛? 或者这个""是哪个库来着? 我一时想不起来..真尴尬...

2

找到更简单的解决办法.. 直接在before-upload的方法里面return false;的上一行直接加如下代码即可! this.$refs.uploadRef.uploadFiles.pop();

注: 需要在el-upload标签上添加ref="uploadRef"属性.

5

@michael829 在v-for中的upload这个办法不行,在循环中uploadRef变成了一个数组,而不是原来的单个对象,需要在点击按钮的时候给传入index,即变成this.$refs.uploadRef[index].uploadFiles.pop();

0

@michael829 _.clone是Underscore.js里的方法

8

@mehooo 修复了,下个版本升级后注意把你的hack去掉,不然会造成两次文件的移除

4

@baiyaaaaa 更新版本就可以了吗

3

@huangkuikui 新版本还没有发布。

1

@Leopoldthecoder 什么时候发布呢,现在能给个标准点的解决方案吗

6

@huangkuikui 还是等新版本吧,五个工作日内发布。

3

@Leopoldthecoder 新版本还是存在这个问题吧