背景:
在项目开发中,遇到过上传图片的情况,el-upload组件库上传之后,可以使用组件自带的clearFiles()方法清空已上传的文件列表,show-file-list属性是否显示已上传的文件列表。
方式二、如果upload组件是放在form表单里面的,可以使用resetFields()进行置空表单。
一、upload组件的方法clearFiles()
可以在发送url请求成功之后添加该段代码完成清空文件列表,需要注意的是,必须在upload组件中添加ref属性和file-list属性 。
在需要的地方调用clearFiles()方法,即 this.$refs.upload.clearFiles() 可清空已上传的文件列表。
二、form表单的置空
官网链接:点击跳转官网
问题描述:
第一次已经上传成功,因为组件绑定file-list就存在一条对象;第2次打开就会存在“已有的”,执行上传操作,就会存在2条对象。因为最开始没有清除file-list为[]空数组
在需要的地方调用resetFields()方法,即 this.$refs.resetFields() 可清空表单。
代码解释:
解决思路:
三、其它
出现这个问题是值得反思的!!!
譬如以下这个示例的原理:
把一个存在的对象,用=赋值给一个新的变量2,更改变量2的属性值,会把变量1对应的也发生改变。同理要注意数组,的情况,包括但不限于:reduce()、filter()、会更改原数组的方法
var a,b;
var a = {name:'1'};
var b = a;
b.name = 1;
console.log ('b',b);
控制台打印: