Home > Software design >  How to reset the whole form after submitting in React-hook-form
How to reset the whole form after submitting in React-hook-form

Time:05-07

What should I do after Submitting the form to reset/clear the field value?

import React from "react";
import { useForm } from "react-hook-form";

export default function App() {
  const { register, handleSubmit } = useForm();
  const onSubmit = data => console.log(data);
   
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input {...register("firstName", { required: true, maxLength: 20 })} />
      <input {...register("lastName", { pattern: /^[A-Za-z] $/i })} />
      <input type="number" {...register("age", { min: 18, max: 99 })} />
      <input type="submit" />
    </form>
  );
}`

CodePudding user response:

You can get a reset function from useForm hook, and call it on your onSubmit function, like this:

    import React from "react";
    import { useForm } from "react-hook-form";
    
    export default function App() {
      const { register, handleSubmit, reset } = useForm();
      const onSubmit = data => {
           console.log(data)
           reset()
      }
       
      return (
        <form onSubmit={handleSubmit(onSubmit)}>
          <input {...register("firstName", { required: true, maxLength: 20 })} />
          <input {...register("lastName", { pattern: /^[A-Za-z] $/i })} />
          <input type="number" {...register("age", { min: 18, max: 99 })} />
          <input type="submit" />
        </form>
      );
    }`

On reset documentation, you can check some good practices for reseting a form, like providing some default values to the inputs, for example.

  • Related