antd上传组件删除文件的方法
How to delete a file in antd Upload component
我有这个从 antd 获得的上传组件:react ant design documentation
<Upload
beforeUpload={()=> {
return false; }}
onChange={e => onChangeFile(e, index)}
onRemove={e => onRemoveFile(e, index)}
>
<Button
icon={<UploadOutlined />}
>
Upload a file
</Button>
</Upload>
上传文件后,会出现删除图标。当我单击删除按钮时,文件不会从状态中删除。
这是 onChange 函数:
const onChangeFile = (info, index) => {
console.log("onChange info = " + info);
const newForm = form;
newForm.inputs[index].value = info.file;
setForm({
...form,
from: newForm
});
console.log("onChange form = " + form);
};
我试过像这样使用 onRemove 函数删除它:
const onRemoveFile = (info, index) => {
console.log("onRemove info = " + info);
const newForm = form;
newForm.inputs[index].value = null;
setForm({
...form,
from: newForm
});
console.log("onRemove form = " + form);
};
控制台日志的输出:
UI 的屏幕截图:
随意尝试antd提供的这个代码示例中的一些东西:
您可以按照以下示例实现:
const normFile = (e) => {
if (Array.isArray(e)) {
return e;
}
return e && e.fileList;
};
<Form onFinish={() => {}}>
<Form.Item
name="tagList"
label="Upload"
valuePropName="list"
getValueFromEvent={normFile}
rules={[
{
required: true,
message: 'Tag list is required',
},
]}
>
<Upload
beforeUpload={() => false}
listType="picture-card"
>
<UploadOutlined style={{ marginRight: 5 }} />
Upload
</Upload>
</Form.Item>
</Form>
我有这个从 antd 获得的上传组件:react ant design documentation
<Upload
beforeUpload={()=> {
return false; }}
onChange={e => onChangeFile(e, index)}
onRemove={e => onRemoveFile(e, index)}
>
<Button
icon={<UploadOutlined />}
>
Upload a file
</Button>
</Upload>
上传文件后,会出现删除图标。当我单击删除按钮时,文件不会从状态中删除。
这是 onChange 函数:
const onChangeFile = (info, index) => {
console.log("onChange info = " + info);
const newForm = form;
newForm.inputs[index].value = info.file;
setForm({
...form,
from: newForm
});
console.log("onChange form = " + form);
};
我试过像这样使用 onRemove 函数删除它:
const onRemoveFile = (info, index) => {
console.log("onRemove info = " + info);
const newForm = form;
newForm.inputs[index].value = null;
setForm({
...form,
from: newForm
});
console.log("onRemove form = " + form);
};
控制台日志的输出:
UI 的屏幕截图:
随意尝试antd提供的这个代码示例中的一些东西:
您可以按照以下示例实现:
const normFile = (e) => {
if (Array.isArray(e)) {
return e;
}
return e && e.fileList;
};
<Form onFinish={() => {}}>
<Form.Item
name="tagList"
label="Upload"
valuePropName="list"
getValueFromEvent={normFile}
rules={[
{
required: true,
message: 'Tag list is required',
},
]}
>
<Upload
beforeUpload={() => false}
listType="picture-card"
>
<UploadOutlined style={{ marginRight: 5 }} />
Upload
</Upload>
</Form.Item>
</Form>