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

Created on 1 Mar 2017  ·  14Comments  ·  Source: ElemeFE/element

ElementUI version

OS/Browers version

Vue version

Reproduction Link



Steps to reproduce

What is Expected?

What is actually happening?

All 14 comments

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

image

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

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

用户体验上感觉不出差异

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

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

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

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

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

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

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

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

@baiyaaaaa 更新版本就可以了吗

@huangkuikui 新版本还没有发布。

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

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

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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

no5no6 picture no5no6  ·  3Comments

yorululu picture yorululu  ·  3Comments

akaylh picture akaylh  ·  3Comments

PanJiaChen picture PanJiaChen  ·  3Comments

fscardua picture fscardua  ·  3Comments