Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dupla renderização no componente item

Bom dia pessoal tudo bem? estou com um problema aqui mas não estou achando a solução, sempre que adiciono um item na lista ou clico nele para seleciona-lo o react faz duas renderizações do mesmo item (como mostra o print abaixo), já varri o código mas não sei o porque ele está fazendo isso, alguém tem alguma ideia?

Print da tela do navegador google chrome, mostrando a esquerda o projeto das aulas react com typescript e a direita o console do navegador com duas entradas de logs iguais

  "dependencies": {
    "@testing-library/jest-dom": "^5.16.4",
    "@testing-library/react": "^13.3.0",
    "@testing-library/user-event": "^13.5.0",
    "@types/jest": "^27.5.2",
    "@types/node": "^16.11.39",
    "@types/react": "^18.0.12",
    "@types/react-dom": "^18.0.5",
    "react": "^18.1.0",
    "react-dom": "^18.1.0",
    "react-scripts": "5.0.1",
    "typescript": "^4.7.3",
    "uuid": "^8.3.2",
    "web-vitals": "^2.1.4"
  },
1 resposta
solução!

Olá, Pedro! Tudo bem?

Isso pode está acontecendo devido ao modo estrito (Strict Mode) do React. Você pode ativar este modo para qualquer parte da aplicação. O que ele faz é te ajudar a identificar potenciais problemas de sua aplicação.

import React from 'react';

function ExampleApplication() {
  return (
      <React.StrictMode>
        <div>
          <ComponentOne />
          <ComponentTwo />
        </div>
      </React.StrictMode>
  );
}

Conceitualmente o React funciona em duas fases:

  • A fase de renderização determina quais mudanças precisam ser feitas para, por exemplo, o DOM. Durante essa fase, o React chama o método render e compara o resultado com a renderização anterior.

  • A fase de commit é quando o React aplica qualquer mudança. (No caso do React DOM, isso é quando o React insere, atualiza ou remove nós do DOM.)

O React pode invocar a fase de renderização várias vezes antes de commitar, por isso você acaba observando que ele renderiza algumas coisas duplicadas, como no seu caso.

Para saber mais recomendo ler a documentação do React e entender como funciona esse modo estrito.

Abraços e bons estudos!