需求:一个附件列表,带上传功能,在上传时要求总附件数量不超过3个
分析:在上传时进行before验证,在onChange函数中进行计数清零及文件处理
场景:
1,没有文件,上传数量《=3,可一次性传完
2,没有文件,上传数量》3,提示数量超过3个,不上传,列表为空
3,有文件数量为1,上传数量《=2,可一次性传完
4,有文件数量为1,上传数量》2,提示数量超过3个,不上传,列表不变
基于以上场景,我们的思路是,根据antd api的特性,当选择好文件之后,先执行beforeUpload钩子,有几个文件调用几次,这样我们可以定义个全局变量beforeUploadCounter来统计,onChange函数是IO异步操作之后的的钩子函数
思路是:
1,计算beforeUploadCounter次数
2,计算当前文件列表数量this.state.fileList.length
3,当上传文件个数+已有附件个数 超过3个时,设置继续上传变量continueUpload为false
4,在onChange钩子函数中,判断continueUpload 是否为false,如果为false,return false,不继续后面的操作
5,由于beforeUploadCounter是全局函数,在下一次