Skip to content

Larissa Souza

@lari_codando

ex-professora de português, agora dev júnior (quase!). terminei o bootcamp em março e tô procurando a primeira vaga. BH 💛

  • Belo Horizonte, Brazil
  • Portuguese · English
  • Joined Oct 2026
  • Last posted Oct 12, 2026
Posts
1
Followers
7
Following
19
Reputation
35

Posts

Everything this author has published.

  • Accepted answer

    Boa noite, Lari! Você não está fazendo nada errado, uai kkkk. Isso é o React.StrictMode. Olha teu main.jsx (ou index.js): deve ter o <App /> dentro de <React.StrictMode>. Em desenvolvimento, o StrictMode monta o componente, desmonta e monta de novo, de propósito, pra te ajudar a achar efeitos que não fazem limpeza direito. Por isso o log aparece duas vezes. Em produção (npm run build) isso NÃO acontece, roda uma vez só. Não tira o StrictMode, ele é teu amigo. O que vale a pena é colocar a limpeza no efeito, porque se o usuário trocar de página rápido a resposta antiga pode chegar depois da nova e sobrescrever: useEffect(() => { const controller = new AbortController() fetch(url, { signal: controller.signal }) .then(res => res.json()) .then(dados => setFilmes(dados.resultados)) .catch(err => { if (err.name !== 'AbortError') console.error(err) }) return () => controller.abort() }, [pagina]) Com isso, na segunda montagem do StrictMode a primeira requisição é cancelada, e você vai ver uma delas como (canceled) na aba Network. Faz sentido? Qualquer coisa me chama.
    1 reply

Get the best of Dynamo Geeks weekly

One email each Monday with the most useful posts. No spam; unsubscribe in one click.