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.