在使用Upload这个组件的时候,我们会发现它其实又许多的小坑坑。
如果我们在beforeUpload中直接返回true或者是false,那么它其实也是会上传文件的,因为它也会触发onChange函数。

步骤重现:

handleBeforeUpload(file){ 
const sizeOk = file.size <1024 * 300; 
const typeOk = file.type ==='image;

if (!typeOk) {
  message.error('照片格式有误!');
} else {
  if (!sizeOk) {
    message.error('照片大小超过300K!');
  }
}

return sizeOk && typeOk;
}

期待效果:

当上传错误格式的照片,提示格式错误,但不显示任何效果

执行效果:

当上传错误格式的照片,提示格式错误,但界面上显示了“文件上传中”

代码修改:

handleBeforeUpload(file){ 
	const sizeOk = file.size <1024 * 300; 
	const typeOk = file.type ==='image;

	return new Promise((resolve, reject) => {
	  if(!typeOk) {
		message.error('照片格式有误!');
		reject(file);
	  } else if(!sizeOk) {
		message.error('照片大小超过300K!');
		reject(file);
	  }else {
		resolve(file);
	  }
	});
}

 

Logo

前往低代码交流专区

更多推荐