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

194
Vistas
¿Cómo usar el asistente de inmutabilidad para actualizar un objeto anidado dentro de una matriz?

Reductor interior, dado un objeto de estado:

 var state = { "data": [{ "subset": [{ "id": 1 }, { "id": 2 }] }, { "subset": [{ "id": 10 }, { "id": 11 }, { "id": 12 }] }] }

Como puede ver, los datos son una matriz anidada, con matrices en cada uno de sus elementos.

Sabiendo que action.indexToUpdate será un índice para datos, quiero actualizar data[action.indexToUpdate].subset a una nueva matriz mediante programación. Por ejemplo, si action.indexToUpdate = 0, data[0] se actualizará desde

 [{"id":1},{"id":2}]

para

 [{"id":4},{"id":5}]

Para poder hacerlo tengo:

 let newSubset = [{"id":4},{"id":5}] let newState = update(state.data[action.indexToUpdate], { subset: { newSubset, }, })

Pero cuando ejecuté esto, devuelve un error:

 TypeError: value is undefined

en la función de actualización.

He estado mirando la documentación de reacción aquí: https://facebook.github.io/react/docs/update.html pero realmente no pude averiguar cómo hacerlo. ¡Por favor avise!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Su actualización se verá como

 var obj = {"state" : { "data": [{ "subset": [{ "id": 1 }, { "id": 2 }] }, { "subset": [{ "id": 10 }, { "id": 11 }, { "id": 12 }] }] }} return update(obj, { "state" : { "data": { [action.indexToUpdate]: { "subset": { $set: [newSubset] } } } } })

En caso de que haya otros campos en el subconjunto, pero solo desea cambiar los campos en un índice específico que contiene otras claves, escribiría

 return update(obj, { "state" : { "data": { [action.indexToUpdate]: { "subset": { [id]: {$merge: newSubset} } } } } })
over 4 years ago · Santiago Trujillo 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