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

192
Visualizações
Memoriza una función en React

Hay un componente que recibe props.

Los accesorios tienen la forma de una matriz, para cada elemento de esta matriz, una función devolverá un componente diferente para representar.

 function MainComponent ({ data }) => { // data is props, an array const specialFunction = (index) => { switch (index) { case 0: return <Component0 />; case 1: return <Component1 />; case 2: return <Component2 />; default: return null; } }; ... return ( ... data.map((item, index) => { ... // do other stuff with item <div>{specialFunction(index)}</div> // the function that we talk about ... );

¿Hay alguna manera de memorizar el resultado de esto si los accesorios no van a cambiar? ¿O alguna forma de escribirlo mejor?

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

0

Hay un par de maneras de lograr esto:

  1. Podrías usar un estado para almacenar la matriz

const [components] = useState([<Component0 />, <Component1 />, <Component2 />])

Y luego solo use components[index] cuando intente renderizar.

  1. Podrías probar useCallback para memorizar tu función.
about 4 years ago · Juan Pablo Isaza Relatório

0

useCallback con una matriz de dependencia vacía será el mejor enfoque aquí. useCallback devolverá una versión memorizada de la devolución de llamada que solo cambia si una de las dependencias ha cambiado. Dado que nuestra matriz de dependencia es [] , se inicializará solo una vez y la función memorizada devuelta se usará en llamadas de funciones posteriores.

 const specialFunction = useCallback((index) => { switch (index) { case 0: return <Component0 />; case 1: return <Component1 />; case 2: return <Component2 />; default: return null; } }, []);
about 4 years ago · Juan Pablo Isaza Relatório

0

Otro patrón, creo que en este caso el más elegante es usar:

 const components = { 0: <Component0 />, 1: <Component1 />, 2: <Component2 />, } /* or const components = [<Component0 />, <Component1 />, <Component2 />] */ function MainComponent ({ data }) => { ... return ( ... data.map((item, index) => <div>{components[index] || null}</div> ... );
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