0Pricing
React Academy · Aula

Regras de validação e mensagens de erro

Aplique regras de validação integradas (required, minLength, pattern) e exiba mensagens de erro.

Regras de validação e mensagens de erro é uma aula grátis de React Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

Boas-vindas

Nesta lição, você adicionará regras de validação integradas aos campos do React Hook Form e exibirá mensagens de erro claras para os usuários abaixo de cada campo de entrada.

Regras de validação integradas

Passe um objeto de regras como segundo argumento para register(). As regras integradas incluem: `required`, `minLength`, `maxLength`, `min`, `max`, `pattern` e `validate`.
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

Campos obrigatórios

Defina `required` como um texto para tornar o campo obrigatório. Esse texto se torna a mensagem de erro. Defini-lo como `true` usa uma mensagem genérica.
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

Restrições de comprimento

Use `minLength` e `maxLength` com um objeto `{ value, message }` para definir limites de caracteres e mensagens de erro personalizadas.
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

Validação por padrão

A regra `pattern` aceita um valor RegExp. Use-a para validar formatos de e-mail, números de telefone ou qualquer padrão de texto.
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

Exibindo erros

Leia o objeto `errors` de formState. Cada campo que falhou na validação tem uma entrada com uma propriedade `message`. Renderize-a condicionalmente abaixo do campo de entrada.
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

Validação personalizada com validate

A regra `validate` aceita uma função que retorna `true` para um valor válido ou um texto de erro para um valor inválido. Use-a para regras de negócio que as regras integradas não conseguem expressar.
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

Vários validadores personalizados

Passe um objeto de validadores nomeados para `validate` para executar várias verificações personalizadas no mesmo campo.
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

Exibindo a quantidade de erros

Conte o total de erros para ativar ou desativar o botão de envio ou exibir um resumo. Use Object.keys(errors).length.
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

Estilizando campos de entrada com erro

Aplique uma classe CSS aos campos de entrada que tenham erros para criar um efeito visual de borda vermelha. Verifique errors[fieldName] para aplicar a classe condicionalmente.
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

Verificação rápida

Como você exibe a mensagem de erro de um campo chamado 'email' no React Hook Form?

Recapitulação

Adicione regras de validação como segundo argumento de register(): required, minLength, maxLength, pattern, min, max e validate. Leia errors[fieldName].message de formState para exibir as mensagens.

A seguir

Próxima lição: **Validação de esquema com Zod** — você integrará @hookform/resolvers e esquemas Zod para obter validação de formulários segura quanto aos tipos.

Perguntas Frequentes

A aula “Regras de validação e mensagens de erro” é grátis?

Sim — o texto completo de “Regras de validação e mensagens de erro” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “Regras de validação e mensagens de erro”?

Aplique regras de validação integradas (required, minLength, pattern) e exiba mensagens de erro. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Regras de validação e mensagens de erro”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Primeiros passos com React Hook Form
  2. Regras de validação e mensagens de erro
  3. Validação de esquema com Zod
  4. Campos dinâmicos com useFieldArray
← Voltar para React Academy