📅  最后修改于: 2023-12-03 14:46:56.328000             🧑  作者: Mango
在React Hook Form中,我们可以使用reset方法来重置整个表单。这个方法可以将所有已输入的数据清除,并将所有表单项的错误消息清除。
useForm
钩子我们可以使用useForm
钩子来创建一个表单的实例,然后我们可以使用reset
方法来重置表单。
import { useForm } from "react-hook-form";
function App() {
const { register, handleSubmit, errors, reset } = useForm();
const onSubmit = (data) => console.log(data);
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input type="text" name="firstName" ref={register} />
<input type="text" name="lastName" ref={register} />
{errors.firstName && <p>{errors.firstName.message}</p>}
{errors.lastName && <p>{errors.lastName.message}</p>}
<button type="submit">Submit</button>
<button type="button" onClick={() => reset()}>
Clear
</button>
</form>
);
}
在上面的代码中,我们在表单中添加了一个清除按钮,并在按钮点击时调用了reset
方法。
如果您希望在重置表单时设置默认值,可以将您输入的默认值作为参数传递给reset
方法。
例如,我们想在重置表单时将firstName
的默认值设置为John
:
<button type="button" onClick={() => reset({ firstName: "John" })}>
Clear
</button>
这将在清除表单时将firstName
设置为John
。
如果您需要重置整个表单,包括它所有的值和验证错误,您可以使用reset
方法的第二个可选参数。将此参数设置为undefined
将清除所有内容。
例如,我们将以下代码添加到我们的例子中:
<button type="button" onClick={() => reset(undefined, { errors: true })}>
Clear All
</button>
当点击“Clear All”按钮时,表单将被重置,并且所有的验证错误都将被清除。
在React Hook Form中,使用reset
方法可以清除输入的值并清除所有验证错误。通过在调用reset
方法时传递默认值的对象,我们可以设置输入的默认值。还可以使用reset
方法的第二个参数来清除所有验证错误。