Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

71
Vistas
cómo evitar volver a renderizar componentes con redux

Cómo evitar que se vuelvan a renderizar los componentes, cuando tengo una matriz jerárquica de objetos (matriz de objetos) usando despacho redux y memo, por ejemplo, tengo esta lista de lista de componentes como

 Elements =[ // an array in store.state variable {name='a', subEelemets:[ {name:'a-a', components:[ { name:'aa-1', component:'TextFiled', value:'default value...' }, ] }, ] }, ]

Utilicé redux para actualizar los valores de los componentes dentro de mi matriz de Elementos usando el envío, pero el rendimiento se degradó debido a muchas representaciones, probé con memo para evitar la representación, pero también actualiza toda la matriz de Elementos porque usé useSelector,

 const ImportedComponent = memo((props) => { const LoadableComponent = loadable(() => import("../lib" + props.compName)) ); return ( <LoadableComponent {...props} id={props.id} />)},(a,b)=>a.id===b.id?true:false)

aqui el codigo de como redeno mis componentes

 const selectTodoIds = state => state.components.map((todo,index) => todo) const updateComp = () => { const Components = useSelector(selectCompsIds, shallowEqual) const renderedListItems = Components.map((CompId) => <ImportedComponent key={CompId} elementID={CompId} /> ) return <ul className="todo-list">{renderedListItems}</ul> }

funciona cuando usé una matriz plana como se presenta en el tutorial https://redux.js.org/tutorials/fundamentals/part-5-ui-react pero no para uno jerárquico, porque debo usar el "nombre" para definir qué subelemento estoy actualizando, ¿hay alguna estrategia para resolver este problema? pd: el código es solo para aclarar,

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En lugar de memo , puedes probar useMemo :

 const ImportedComponent = (props) => { const LoadableComponent = useMemo(() => { return loadable(() => import("../lib" + props.compName)); },[props.compName]); ...

memo solo ayuda cuando hay muchos renderizados con los mismos accesorios, que no parece que tengas.

Sin embargo, eso es un tiro completo en la oscuridad. ¿Puedes publicar un enlace a un stackblitz, tal vez? Sería bueno ver más de su código en contexto.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda