Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

189
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!