Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

95
Visualizações
Reaccionar memo crea volver a renderizar

Tengo un problema con la nota de reacción cuando uso nextjs. En la _app, por ejemplo, tengo un botón importado:

 import { ChildComponent } from './ChildComponent'; export const Button = ({ classN }: { classN?: string }) => { const [counter, setCounter] = useState(1); const Parent = () => { <button onClick={() => setCounter(counter + 1)}>Click me</button> } return ( <div> {counter} <Parent /> <ChildComponent /> </div> ); };

Componente hijo:

 import React from 'react'; export const ChildComponent = React.memo( () => { React.useEffect(() => { console.log('rerender child component'); }, []); return <p>Prevent rerender</p>; }, () => false );

Hice uno trabajando en React y no pude resolverlo en mi propia aplicación: https://codesandbox.io/s/objective-goldwasser-83vb4?file=/src/ChildComponent.js

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El segundo argumento de React.memo() debe ser una función que devuelva true si el componente no necesita volver a renderizarse y false de lo contrario, o en la definición original , si los accesorios antiguos y los accesorios nuevos son iguales o no .

Entonces, en su código, la solución debería ser simplemente cambiar el segundo argumento a:

 export const ChildComponent = React.memo( () => { ... }, // this () => true );

Lo que le dirá a React que "los accesorios no cambiaron y, por lo tanto, no es necesario volver a renderizar este componente".

about 4 years ago · Juan Pablo Isaza Relatório

0

Entonces, mi problema fue que hice una función llamada Botón y regresé dentro de un botón o Enlace. Así que tenía un mouseEnter dentro del botón que actualizaría el estado y manejaría la función fuera de la función. un poco vergonzoso Esto lo arregló. Entonces, el único cambio fue que moví usestate y handlemousehover dentro de la función de botón.

 const Button = () => { const [hover, setHover] = useState(false); const handleMouseHover = (e: React.MouseEvent<HTMLElement>) => { if (e.type === 'mouseenter') { setHover(true); } else if (e.type === 'mouseleave') setHover(false); }; return ( <StyledPrimaryButton onMouseEnter={(e) => handleMouseHover(e)} onMouseLeave={(e) => handleMouseHover(e)} > <StyledTypography tag="span" size="typo-20" > {title} </StyledTypography> <ChildComponent /> </StyledPrimaryButton> ); };
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda