Foto de Perfil do Lucas Eduardo

Lucas Eduardo

lucas-araras@outlook.com

Compartilhando conteúdos úteis de tecnologia.

Fique a vontade.😎
09.06.2023

Tutorial-Como implementar validações no React TypeScript ??

Passo 1: Configurando o projeto React com TypeScript

Crie um novo projeto React com TypeScript usando o comando npx create-react-app nome-do-projeto --template typescript. Navegue até a pasta do projeto usando o comando cd nome-do-projeto. Inicie o servidor de desenvolvimento com o comando npm start.

Passo 2: Criando um componente de formulário

Crie um novo componente de formulário. Por exemplo, crie um arquivo chamado Formulario.tsx na pasta src. Dentro do componente Formulario, defina uma interface para o estado inicial com os campos que você deseja validar. Por exemplo:

import React, { useState } from 'react';

interface FormState {
  nome: string;
  email: string;
  senha: string;
}

const Formulario: React.FC = () => {
  const [form, setForm] = useState<FormState>({
    nome: '',
    email: '',
    senha: ''
  });

  // Restante do código...
}

Crie manipuladores de mudança para atualizar o estado do formulário. Por exemplo:

const handleNomeChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setForm({ ...form, nome: event.target.value });
}

const handleEmailChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setForm({ ...form, email: event.target.value });
}

const handleSenhaChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setForm({ ...form, senha: event.target.value });
}

Renderize o formulário JSX com os campos e os respectivos manipuladores de mudança. Por exemplo:

return (
  <form>
    <label>
      Nome:
      <input type="text" value={form.nome} onChange={handleNomeChange} />
    </label>
    <label>
      Email:
      <input type="email" value={form.email} onChange={handleEmailChange} />
    </label>
    <label>
      Senha:
      <input type="password" value={form.senha} onChange={handleSenhaChange} />
    </label>
    <button type="submit">Enviar</button>
  </form>
);

Passo 3: Adicionando validação aos campos

Declare um estado para armazenar os erros de validação. Por exemplo:

const [erros, setErros] = useState<Partial<FormState>>({});

Crie uma função de validação para verificar os campos e atualizar os erros. Por exemplo:

const validarCampos = () => {
  const novosErros: Partial<FormState> = {};

  // Validação do campo nome
  if (form.nome.trim() === '') {
    novosErros.nome = 'Por favor, digite o seu nome.';
  }

  // Validação do campo email
  if (form.email.trim() === '') {
    novosErros.email = 'Por favor, digite o seu email.';
  } else if (!/\S+@\S+\.\S+/.test(form.email)) {
    novosErros.email = 'Por favor, digite um email válido.';
  }

  // Validação do campo senha
  if (form.senha.trim() === '') {
    novosErros.senha = 'Por favor, digite a sua senha.';
  }

  setErros(novosErros);
}

Chame a função de validação quando o formulário for enviado. Por exemplo, adicione o seguinte código à função return:

<button type="submit" onClick={validarCampos}>Enviar</button>

Renderize as mensagens de erro na interface, abaixo de cada campo correspondente. Por exemplo:

<label>
  Nome:
  <input type="text" value={form.nome} onChange={handleNomeChange} />
  {erros.nome && <span>{erros.nome}</span>}
</label>
<label>
  Email:
  <input type="email" value={form.email} onChange={handleEmailChange} />
  {erros.email && <span>{erros.email}</span>}
</label>
<label>
  Senha:
  <input type="password" value={form.senha} onChange={handleSenhaChange} />
  {erros.senha && <span>{erros.senha}</span>}
</label>

Passo 4: Finalizando a validação

Para evitar o envio do formulário caso haja erros de validação, você pode adicionar uma verificação antes de realizar a submissão. Por exemplo, atualize a função validarCampos da seguinte maneira:

const validarCampos = (event: React.FormEvent) => {
  event.preventDefault();

  const novosErros: Partial<FormState> = {};

  // Validação dos campos...

  if (Object.keys(novosErros).length === 0) {
    // Realize as ações desejadas após a validação bem-sucedida, como enviar dados para um servidor.
    console.log('Formulário válido. Envie os dados:', form);
  } else {
    setErros(novosErros);
  }
}

No formulário, atualize o atributo onClick do botão "Enviar" para chamar a função validarCampos. Por exemplo:

<button type="submit" onClick={validarCampos}>Enviar</button>

Agora você tem um componente de formulário no React com validação básica usando TypeScript. Certifique-se de adaptar a validação de acordo com suas necessidades e requisitos específicos.