1
votes

react-hook-form - champ de saisie vide après chaque soumission

J'essaye de comprendre comment fonctionne le react-hook-form. Pour cela, j'ai créé l'exemple suivant:

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

const InputForm = () => {
  const { register, handleSubmit } = useForm();

  const onSubmit = (data) => {
    console.log(data);
  };

  return (
    <>
      <Form onSubmit={handleSubmit(onSubmit)}>
        <Form.Group controlId='formBasicName'>
          <Form.Label>Name</Form.Label>
          <Form.Control
            type='text'
            name='name'
            ref={register}
          />
        </Form.Group>

        <Form.Group controlId='formBasicEmail'>
          <Form.Label>Email address</Form.Label>
          <Form.Control
            type='email'
            name='email'
            ref={register}
          />
          
        <Button className='submitBtn' type='submit'>
          Submit
        </Button>
      </Form>
    </>
  );
};

export default InputForm;

Cela fonctionne et si je soumets le formulaire, je peux voir l'objet de données dans la console. Le seul problème est qu'après chaque soumission, les zones de saisie affichent toujours leur valeur. Je veux qu'après chaque soumission, la valeur des zones de saisie devienne vide. Ce serait facile avec useState, mais maintenant que j'utilise react-hook-from, je ne sais pas comment faire ça.


0 commentaires

3 Réponses :


5
votes

Utilisez cette fonction d'envoi:

const onSubmit = (data, e) => {
  e.target.reset();
};


0 commentaires

0
votes
const InputForm = () => {
  const { register, handleSubmit, reset } = useForm();

  const onSubmit = (data) => {
    console.log(data);
    reset();
  };
Add it to the submit function

0 commentaires

0
votes

Utilisez le code suivant pour réinitialiser les champs de saisie

const onSubmit = (data, e) => {
  e.target[0].value = ''; // for name
  e.target[1].value = '';  // for email
};


2 commentaires

Veuillez expliquer comment cela peut aider, étendre le code à un exemple reproductible minimal, dans cet état, cela n'est pas utile.


Il est édité maintenant