antd upload reponse 不等于200清空filelist
时间: 2023-12-10 13:40:44 浏览: 197
如果antd upload组件的响应状态码不是200,可以通过在Upload组件的onError回调函数中清空fileList来达到清空的效果。具体代码如下:
```
<Upload
action="/upload"
fileList={fileList}
onError={(err) => {
console.log('上传失败', err);
setFileList([]);
}}
>
<Button icon={<UploadOutlined />}>上传文件</Button>
</Upload>
```
当响应状态码不是200时,onError回调函数会被触发,此时我们将fileList清空即可。
相关问题
antd upload 清空 fileList
要清空 `fileList`,可以通过在 `Upload` 组件上设置 `fileList` 属性为一个空数组 `[]` 来实现。例如:
```jsx
import React, { useState } from 'react';
import { Upload, Button } from 'antd';
const MyUpload = () => {
const [fileList, setFileList] = useState([]);
const handleUpload = () => {
// 处理上传代码
};
const handleClear = () => {
setFileList([]);
};
return (
<div>
<Upload fileList={fileList}>
<Button>选择文件</Button>
</Upload>
<Button onClick={handleUpload}>上传</Button>
<Button onClick={handleClear}>清空</Button>
</div>
);
};
export default MyUpload;
```
在上面的例子中,我们使用 `useState` 声明了一个 `fileList` 状态,并在 `Upload` 组件上设置了 `fileList` 属性。同时,我们还创建了两个按钮:一个用于上传文件,另一个用于清空 `fileList`。当点击清空按钮时,我们通过调用 `setFileList` 方法并传入一个空数组来清空 `fileList`。
antd upload reponse.data 为空清空filelist
你好,如果上传文件后服务器返回的 `response.data` 为空,可以通过清空 `fileList` 来处理:
```jsx
import { Upload, message } from 'antd';
const MyUpload = () => {
const [fileList, setFileList] = useState([]);
const handleChange = ({ fileList, file }) => {
if (file.response && file.response.data) {
// 处理返回数据
} else if (file.status === 'error') {
message.error(`${file.name} 上传失败`);
}
setFileList(fileList.filter((file) => !!file.response));
};
return (
<Upload
action="/api/upload"
fileList={fileList}
onChange={handleChange}
>
{/* ... */}
</Upload>
);
};
```
在 `handleChange` 函数中,如果上传的文件返回的 `response.data` 为空,则从 `fileList` 中过滤掉该文件。这样就可以确保不会显示上传失败的文件,同时也不会显示上传成功但是没有返回数据的文件。
阅读全文