Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Qual a maneira "correta" de tratar um formulário?

Em outras aulas aprendi a manipular formulários do React de uma maneira diferente. Utilizando hooks para pegar os valores dos campos durante o preenchimento do formulário e, utilizando a propriedade onSubmit, chamava uma função para tratar os dados.

Existe uma maneira recomendada pra tratar formulário ou ambas são igualmente aceitas?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Olá Alexander! Tudo bem?

A dúvida sobre como tratar formulários no React é bastante comum, e é ótimo que você esteja buscando entender as melhores práticas. No React, existem algumas abordagens para lidar com formulários, e a escolha pode depender do que você precisa para o seu projeto.

  1. Usando Hooks e onSubmit: Essa é uma abordagem bastante comum e recomendada. Você utiliza o hook useState para gerenciar o estado dos campos do formulário enquanto o usuário os preenche. Quando o formulário é submetido, você usa o evento onSubmit para chamar uma função que trata os dados. Isso permite que você tenha controle total sobre o estado do formulário e possa validar ou manipular os dados antes de enviá-los.

    Exemplo:

    const [nome, setNome] = useState('');
    
    function handleSubmit(event) {
      event.preventDefault();
      console.log('Nome:', nome);
    }
    
    return (
      <form onSubmit={handleSubmit}>
        <input
          type="text"
          value={nome}
          onChange={(e) => setNome(e.target.value)}
        />
        <button type="submit">Enviar</button>
      </form>
    );
    
  2. Usando FormData: Como visto no contexto da aula, você pode usar FormData para capturar os dados do formulário quando ele é submetido. Essa abordagem é útil quando você deseja manipular os dados de forma mais direta, especialmente quando lida com arquivos ou dados complexos.

    Exemplo:

    function handleSubmit(event) {
      event.preventDefault();
      const formData = new FormData(event.target);
      console.log('Nome:', formData.get('nome'));
    }
    
    return (
      <form onSubmit={handleSubmit}>
        <input name="nome" type="text" />
        <button type="submit">Enviar</button>
      </form>
    );
    

Ambas as abordagens são válidas e têm seus usos dependendo do que você precisa. A primeira abordagem é mais comum quando você quer ter um controle mais granular sobre o estado dos inputs durante o preenchimento. Já a segunda é mais prática para capturar todos os dados de uma vez, especialmente em formulários mais complexos.

Espero ter ajudado. Conte com o apoio do fórum :)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado