1
resposta

[Bug] Ao rodar o Alura Esporte recebo o seguinte erro:

Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in %s.%s, a useEffect cleanup function, in Principal

Como resolver esse erro?
1 resposta

Olá Diego!

Esse erro geralmente ocorre quando você está tentando atualizar o estado de um componente que já foi desmontado. Isso pode acontecer quando você possui algum código assíncrono, como uma chamada a uma API, que é executado após o componente ter sido desmontado.

Uma solução para esse problema é tentar utilizar a função de limpeza do useEffect para cancelar todas as tarefas assíncronas e cancelar todas as inscrições antes de desmontar o componente. Isso pode ser feito retornando uma função dentro do useEffect que realiza essas tarefas de limpeza.

Aqui está um exemplo de como você pode fazer isso:

useEffect(() => {
  // código assíncrono ou inscrições aqui

  return () => {
    // tarefas de limpeza aqui, como cancelar tarefas assíncronas e inscrições
  };
}, []);

Certifique-se de que o array de dependências esteja vazio, para que o useEffect só seja executado uma vez, quando o componente for montado.

Espero que isso ajude a resolver o seu problema! Se tiver mais alguma dúvida, é só me dizer.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software