antd 踩坑 upload组件 上传成功未显示图片--1

  1. 关于antd官方文档的坑
    首先先说一下antd的官方文档。
    我不知道他们是怎么在管理站点的,文档内容估计很长一段时间没有更新了。这次公司项目中用到这个upload组件卡了我近两天,就是找不到跳出他们规定格式的坑。

  2. onChange事件
    这个事件对于常常自由发挥的程序员来说,可以说是毫无用处(可能是我还没有必须用到它的地方),首先它只是用来改变状态的,文档中他被用来改变上upload组件的loading状态,单页面单组件或许这么用能显得人性化一点。
    而事实上如果你的接口回传格式不符合它的既定格式的话,变成loading之后将无法变回来。

  3. file格式
    文档中file对象包含了{uid,name,status,response: ‘{“status”: “success”}’,linkProps}这些东西,当然这些只是他upload上传文件是会有的属性,可以手动设置filelist来代替他本身的file列表,不过其中uid是必须的,要显示图片,url也是必须的。

下面说说我在项目中遇到的坑

项目中,我用到了upload组件来上传图片,同事写的接口只返回图片的url。因为格式不符合官方的规定,组件loading之后就变不回来了,而且也无法读取response。
百度这个问题后跳出来的全是自定义上传customRequest写的。
文档中甚至建议用户给antd降级。

到了这里我真的很感谢vs code 的追源功能,ctrl点击upload标签之后我看到了它可定义的事件。
antd 踩坑 upload组件 上传成功未显示图片--1_第1张图片
在这里找到了onSuccess事件,成功得读取了response,一个接口给的图片链接。

这个事件在文档中是不存在的。
(没准我这文章上了之后,文档就更新了也说不定)

但它却很重要!

在onSuccess事件中,将url赋值给state,图片显示成功。

当然onChange事件就这么被我给丢了。(没用上)

你可能感兴趣的:(antd)