gpt4 book ai didi

reactjs - React hook 表单文件上传,文件长度为 0,提交后除选择选项外所有字段都被重置

转载 作者:行者123 更新时间:2023-12-05 03:41:00 25 4
gpt4 key购买 nike

  function Donate() {
const {
register,
handleSubmit,
watch,
formState: { errors },
reset,
} = useForm();
const makePayment = (data) => {
console.log(data);
reset();
};
return (
<div>
<Container>
<Row>
<Col sm={18} md={8} lg={8} className="mx-auto">
<Form onSubmit={handleSubmit(makePayment)}>
<Form.Group className="mb-3" controlId="name">
<Form.Label>Name</Form.Label>
<Form.Control
type="text"
placeholder="Enter name"
{...register("name")}
/>

</Form.Group>
<Form.Group className="mb-3" controlId="email">
<Form.Label>Email address</Form.Label>
<Form.Control
type="email"
placeholder="Enter email"
{...register(
"email"

)}
/>

</Form.Group>
<Form.Group className="mb-3" controlId="file">
<Form.Label>Image</Form.Label>
<Form.Control type="file" {...register("file")} />

</Form.Group>
<Form.Group className="mb-3" controlId="pnumber">
<Form.Label>Phone Number</Form.Label>
<Form.Control
type="text"
placeholder="Enter phone number(without 0/+91)"
{...register("pnumber")}
/>
</Form.Group>
<Form.Group controlId="studiesorjob">
<Form.Label>Doing Studies or Job</Form.Label>
<Form.Control
as="select"
{...register("studiesorjob")}
>
<option selected disabled></option>
<option value="studies">Studies</option>
<option value="job">Job</option>
</Form.Control>
</Form.Group>
<Form.Group className="mb-3" controlId="amount">
<Form.Label>Amount you'd like to donate</Form.Label>
<Form.Control
placeholder="Amount"
type="number"
min="1"
{...register("amount")}
/>

</Form.Group>
<Button variant="primary" type="submit">
Submit
</Button>
</Form>
</Col>
</Row>
</Container>
</div>
);
}

Here, in this code I'm trying to make file upload along with other fields, but file length is showing 0. Also on submit, in "makePayment", file Length is showing 0, and every field is getting reset after submitting except Select option field. I am using react hook form npm library in this.Select reset is not happening and file upload is not working.

最佳答案

请删除 reset()调用表单提交事件,添加 reset在调用 api 之后调用,比如提交表单,调用提交 api,然后在成功响应时,调用 reset() ;

另外,我不确定<Form.Control type="file" {...register("file")} />在这里你应该添加 <Form.Control as="input" type="file" {...register("file")} /> ,可能这也是导致问题的原因。

关于reactjs - React hook 表单文件上传,文件长度为 0,提交后除选择选项外所有字段都被重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67900847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com