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

203
Vistas
¿Cómo reasignar el método/propiedad del objeto a un nuevo objeto?

Me he topado con algo interesante. Cuando creo un nuevo objeto configurando una nueva clave para un método, no lo maneja correctamente cuando intento acceder a él (usarlo). Por favor, vea el ejemplo a continuación:

 const cases = [ { instance: instance.mydecorator, triggerEffects: useMyDecorator }, ];

entonces quiero recorrer de la siguiente manera:

 cases.forEach(({ instance, triggerEffects }) => { instance = [ Story => { triggerEffects(); return <Story />; }, ]; });

el ejemplo anterior no funciona: instancia != instancia.midecorador, por lo que la matriz no está configurada correctamente.

Lo que funciona es:

 const cases = [ { instance: instance, triggerEffects: useMyDecorator }, ]; cases.forEach(({ instance, triggerEffects }) => { instance.mydecorator = [ Story => { triggerEffects(); return <Story />; }, ]; });

¡Cualquier ayuda para comprender este comportamiento sería apreciada! Gracias

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

0

El problema con su código es la desestructuración que está utilizando en los parámetros de entrada de devolución de llamada de foreach: esta parte => cases.forEach(({ instance, triggerEffects })... . Cuando hace esto, desestructura el elemento de la matriz, y cuando mira la declaración de su matriz la instancia apunta a algún otro objeto de instancia, por lo que en destructure { instance, triggerEffects } la instancia apuntará a la instancia del lado derecho de su declaración de matriz: básicamente accedió (marcado con ESTE) a const cases = [ { instance: instance(THIS ONE), triggerEffects: useMyDecorator }, ]; y no el del lado izquierdo como esperabas.

Lo que debe hacer es evitar la desestructuración en este caso, ya que no desea modificar esa instancia del lado derecho, sino el elemento real de la matriz. Hazlo así:

 cases.forEach(element => { element.instance = [ Story => { element.triggerEffects(); return <Story />; }, ]; });
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