ant design的upload组件踩坑记录

antd版本 v4.17.0

1.自定义了onpreview和onchange事件,上传文件后,文件显示有preview的icon但是被禁用,无法调用onpreview事件。

问题展现:

苦苦查找原因,问题出在了这里,当文件没有url的时候,按钮被禁用掉了,官方文档没有说明。

2.给图片和pdf文件自定义了icon,但是pdf的icon正常展示,图片一直显示缩略图

问题展现:

这是自定义的iconRender函数 函数正常

  iconRenderU = (file) => {
    const { type = '', status = '', url = '' } = file;
    if (status === 'done') {
      if ((type.indexOf('pdf') > -1 || url?.includes('.pdf')) && status === 'done') {
        return <img src={upload_Pdf} style={{ height: '58%', display: 'inherit' }} />
      } else if (type.indexOf('image/') > -1) {
        return <img src={upload_img} style={{ height: '58%', display: 'inherit' }} />
      }
    } else {
      return <div style={{ textAlign: 'center' }}>
        <LoadingOutlined style={{ color: '#BA051B' }} />
      </div>
    }
  }

定位问题,问题出在了listType这个属性上,配置了‘picture-card’后 iconRender函数对于图片类型的失效。

解决办法,把listType属性去掉,取默认值text

但是!!这样的话要给upload写样式。。更麻烦,于是找产品解决,不用icon,就用缩略图!

3.图片上传后,从接口里拿的文件回显时,图片缩略图不展示。

问题展现:

解决方法:接口回显时拿到的fileList进行处理,thumbUrl用于展示缩略图的url,拿文件的url赋值即可。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值