Form Validation Validação de Formulário

Última atualização: 2026-11-03

Form Validation Validação de Formulário

A essência da validação é derivar erros a partir do estado: uma função de validação calcula um objeto de erros, o objeto todo é verificado uma vez antes de enviar, e quando algo está errado o envio é bloqueado e a mensagem é renderizada. Mensagens de erro também são UI, então a renderização condicional basta — nenhum trabalho imperativo com o DOM é necessário. Como os erros são calculados durante a renderização, eles jamais ficam fora de sincronia com os campos que descrevem, o que elimina toda uma classe de bugs de mensagens obsoletas.

GrupoPadrões de Componentes
TipoPadrão

ℹ️ Informação O editor transpila JSX para JavaScript e renderiza a UI real na sandbox; os componentes são montados automaticamente — sem render manual.

📝 Sintaxe

const errors = validate(values)   // derive errors from state
const hasError = Object.keys(errors).length > 0

<form onSubmit={e => {
  e.preventDefault()               // block the browser default submit
  if (!hasError) submit(values)
}}>

Retorna:Sem valor de retorno; esta entrada descreve um padrão de codificação e não uma função.

▶ Exemplo

O exemplo roda direto: renderiza automaticamente ao expandir e edições valem na hora.

Saída:

Quando o e-mail está sem @ ou a senha tem menos de 6 caracteres, clicar em "Register" mostra um erro vermelho abaixo do campo correspondente; quando ambos estão válidos, a página mostra "Registered successfully".

💡 Pontos-chave

💡 Dica Toque primeiro, reclame depois: uma flag touched ou submitted controla quando os erros aparecem, para que o usuário nunca encare uma parede de texto vermelho ao chegar.
ℹ️ Informação Derive os erros durante a renderização em vez de armazená-los com setState — a derivação garante que eles permaneçam em sincronia com a entrada.
⚠️ Aviso Esquecer o preventDefault faz o formulário executar o envio nativo do navegador e recarregar a página, fazendo as mensagens de erro piscarem e sumirem.
Mais casos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

P A validação deve ficar no onChange ou no onSubmit?
R Coloque as verificações de formato críticas em um único lugar no momento do envio; dicas amigáveis em tempo real podem ficar no onChange ou onBlur — as duas não conflitam.
P As mensagens de erro devem ser armazenadas no estado?
R Não recomendado. Os erros são uma derivação do estado, então calcule-os durante a renderização; armazená-los pode deixá-los fora de sincronia com a entrada.
P Por que os erros não aparecem após o envio?
R Causas comuns: o onSubmit esqueceu o e.preventDefault(), então a página foi enviada nativamente e recarregada, ou a flag da qual a exibição do erro depende nunca foi definida.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%