在做项目的过程中使用到了antd 的上传组件,但是单张上传图片完美。没有任何缺陷,但是使用照片墙的时候接口调用成功,确一直显示loading。通过任务栏打印对比,handleChange
也是被调用了3此,但是this.setState 少调用了一次。
这里我们需要对handleChange
进行改写,看代码:
handleChange = ({ file, fileList }) => {
if (file.status === 'done') {
// eslint-disable-next-line no-param-reassign
fileList = fileList.map(item => {
// 相关文件对象数据格式化处理
return item;
});
}
// 避免原来的文件丢失,这样子写就可以了
this.setState({ fileList: file.status ? [...fileList] : this.state.fileList });
};
另外,当我们想要回显的时候,后端同学是不会按照antd官方的给的那种数据模式返回给我们,所以也要对数据进行一个处理
url:
uid: ,
我这里包含这两个字端就可以正常显示了。
希望以上内容可以帮助到你,另外,如果你遇到了上传组件handleChange只调用了一次的话点击这里
找一下适合自己的解决办法。
上面代码摘抄于:gitHub>昵称为“mrzhouxu”的发布。