react immutable arreglos array reactjs redux react-redux

reactjs - immutable - cómo usar Immutability helper para actualizar un objeto anidado dentro de una matriz?



react native state array (1)

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 de datos, quiero actualizar los datos [action.indexToUpdate] .subset a una nueva matriz mediante programación. Por ejemplo, si action.indexToUpdate = 0, los datos [0] se actualizarán desde

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

a

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

Para hacerlo, tengo:

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

Pero cuando ejecuté esto, devuelve error:

TypeError: value is undefined

en la función de actualización.

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


Tu 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] } } } } })