Removendo Dependências de Efeito
Quando você escreve um Efeito, o linter verificará se você incluiu todos os valores reativos (como props e state) que o Efeito lê na lista de dependências do seu Efeito. Isso garante que o seu Efeito permaneça sincronizado com as últimas props e state do seu componente. Dependências desnecessárias podem fazer com que o seu Efeito seja executado com muita frequência ou até mesmo criar um loop infinito. Siga este guia para revisar e remover dependências desnecessárias dos seus Efeitos.
Você aprenderá
- Como corrigir loops de dependência de Efeito infinitos
- O que fazer quando você quiser remover uma dependência
- Como ler um valor do seu Efeito sem “reagir” a ele
- Como e por que evitar dependências de objetos e funções
- Por que suprimir o linter de dependências é perigoso e o que fazer em vez disso
As dependências devem corresponder ao código
Quando você escreve um Efeito, primeiro especifica como começar e parar o que quer que o seu Efeito esteja fazendo:
const serverUrl = 'https://localhost:1234';
function ChatRoom({ roomId }) {
useEffect(() => {
const connection = createConnection(serverUrl, roomId);
connection.connect();
return () => connection.disconnect();
// ...
}
Então, se você deixar as dependências do Efeito vazias ([]
), o l