0Pricing
React Academy · Aula

Depuração de erros comuns do React

Diagnostique avisos sobre chaves ausentes, erros de estado indefinido e erros de hidratação.

Depuração de erros comuns do React é uma aula grátis de React Academy no CoddyKit. Esta é a aula 4 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ê diagnosticará os erros mais comuns do React: avisos de chaves ausentes, erros de estado indefinido, renderizações demais e incompatibilidades de hidratação.

Aviso de chave ausente

O React registra: *Cada filho de uma lista deve ter uma propriedade "chave" exclusiva.* Isso acontece quando você renderiza uma matriz sem adicionar uma propriedade `key`. Corrija o problema adicionando uma chave estável e exclusiva a cada item da lista.
// Bad
items.map(item => <li>{item.name}</li>)

// Good
items.map(item => <li key={item.id}>{item.name}</li>)

Não é possível ler propriedades de indefinido

Essa falha geralmente significa que seu estado é `undefined` na primeira renderização. Sempre inicialize o estado com um valor padrão seguro (`[]` para matrizes, `{}` para objetos e `null` para valores que você verifica antes de usar).
// Bad — crashes if data is undefined
const [data, setData] = useState();
return <p>{data.name}</p>;

// Good
const [data, setData] = useState(null);
return data ? <p>{data.name}</p> : <p>Loading...</p>;

Erro de renderizações demais

O React gera o erro *Renderizações demais* quando um componente entra em um ciclo infinito de renderização — geralmente porque você chama `setState` incondicionalmente durante a renderização ou passa diretamente uma função `() => setState(...)` como uma propriedade que é acionada em toda renderização.
// Bad — setState called on every render
function Counter() {
  const [n, setN] = useState(0);
  setN(n + 1); // infinite loop!
  return <p>{n}</p>;
}

Corrigindo renderizações demais

Mova as atualizações de estado para manipuladores de eventos ou useEffect. Nunca chame setState diretamente no nível superior do corpo de um componente.
// Good — update only on click
function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n + 1)}>{n}</button>;
}

Aviso de incompatibilidade de hidratação

Em aplicações SSR, o React avisa: *Falha na hidratação porque a interface inicial não corresponde ao que foi renderizado no servidor.* Causas comuns incluem usar `Date.now()` ou `Math.random()` na renderização, ou extensões do navegador que injetam HTML.

Corrigindo incompatibilidades de hidratação

Mova valores dinâmicos (marcas de tempo e IDs aleatórios) para um `useState` inicializado dentro de `useEffect`, para que o servidor sempre renderize um valor estático e o cliente o atualize após a montagem.
const [ts, setTs] = useState('');
useEffect(() => {
  setTs(Date.now().toString());
}, []);
return <p>{ts}</p>;

Estado não é atualizado imediatamente

Lembre-se de que `setState` é assíncrono. Registrar o estado logo depois de chamá-lo mostra o valor antigo. Para ver o valor atualizado, registre-o dentro de um `useEffect` que tenha a variável de estado como dependência.
const [count, setCount] = useState(0);

function handleClick() {
  setCount(count + 1);
  console.log(count); // still old value!
}

useEffect(() => {
  console.log('updated:', count); // correct
}, [count]);

Componente não é atualizado quando uma propriedade muda

Se um componente não for atualizado quando uma propriedade mudar, verifique se você não está alterando um objeto ou uma matriz no próprio local. O React usa igualdade por referência — alterar um objeto existente não aciona uma nova renderização.
// Bad — same reference, no re-render
const list = [];
list.push('item');
setList(list);

// Good — new array reference
setList([...list, 'item']);

Lendo erros na sobreposição de erros

Quando uma aplicação React falha em desenvolvimento, uma sobreposição de erros aparece no navegador. Leia a **pilha de componentes** na parte inferior — ela mostra todos os componentes que renderizaram o componente com falha, deixando clara a origem do erro.

Verificação rápida

Qual é a causa mais comum do erro do React "Renderizações demais"?

Recapitulação

Agora você pode corrigir os erros mais comuns do React: adicionar chaves estáveis às listas, inicializar o estado com segurança, evitar setState durante a renderização, lidar com incompatibilidades de hidratação e ler a pilha de componentes na sobreposição de erros.

Curso concluído

Parabéns! Você concluiu **React DevTools e depuração**. Agora pode instalar o DevTools, inspecionar árvores de componentes e estados, criar perfis de renderizações e diagnosticar os erros de execução mais frequentes do React.

Perguntas Frequentes

A aula “Depuração de erros comuns do React” é grátis?

Sim — o texto completo de “Depuração de erros comuns do React” é 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 “Depuração de erros comuns do React”?

Diagnostique avisos sobre chaves ausentes, erros de estado indefinido e erros de hidratação. 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 4 de 4.

Quanto tempo leva a aula “Depuração de erros comuns do React”?

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. Instalação e abertura do React DevTools
  2. Inspeção de árvores de componentes e props
  3. Uso da aba Profiler
  4. Depuração de erros comuns do React
← Voltar para React Academy