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