antd-design从上传组件中取到url

在使用antd-design上传组件时,碰到一个问题,表单提交时,该组件的值类似:

[  
 {  
        "uid":"rc-upload-1599658260006-2",  
        "lastModified":1510718130000,  
        "lastModifiedDate":"2017-11-15T03:55:30.000Z",  
        "name":"xchao.png",  
        "size":351463,  
        "type":"image/png",  
        "percent":100,  
        "originFileObj":{  
            "uid":"rc-upload-1599658260006-2"  
        },  
        "status":"done",  
        "response":{  
            "data":"FvI3sfTlMyGMFvHqYjhnXa14aHBi",  
            "success":true  
        },  
        "xhr":{  
  
        }  
    }  
]

我期望的是直接取response中的data。但试了多种方法未能成功,请指点。我的代码如下:

function normFile(e: any) {
  console.log('Upload event:', e);
  if (Array.isArray(e))
    return e;
  }
  return e && e.fileList;
}

const getValueProps = (e) => {
  console.log('getValueProps', e)
  if (e && Array.isArray(e)) {
    const url = e[0].response && e[0].response.data;
    console.log(url)
    return url
  }
  return '';
}

<Form.Item
    name="categoryImg"
    label="商品分类图片"
    getValueProps={getValueProps}
    getValueFromEvent={normFile}
    >

    <Upload
        name="file"
        listType="picture-card"
        className="avatar-uploader"
        showUploadList={false}
        action="https://admin.xxx.com/api/upload"
        beforeUpload={beforeUpload}
        onChange={handleChange}
        >
    {imageUrl ? (<img src={imageUrl} alt="商品分类图片" style{{ width: '100%' }} />) : (uploadButton)}
    </Upload>
</Form.Item>
阅读 4.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进