Tengo un mapa immutable.js almacenado en Redux que está estructurado como:
reduxObject: { details: {} ... objectToChange: { myPosts: [{ name: 'someName', link: 'someLink', }], drafts: [] } }Estoy tratando de agregar la matriz objectToChange.myPosts en una función reductora usando
let temp = state.getIn([objectToChange, myPosts]) temp.push(action.payloadData) return state.setIn([objectToChange, myPosts], temp)Los datos de redux se están actualizando, sin embargo, los datos de redux que se muestran no se vuelven a procesar. Esperaba que state.setIn creara un nuevo objeto inmutable que provocara una reacción nativa para activar una nueva representación. Cualquier sugerencia o ayuda sería muy apreciada. gracias de antemano
Así que encontré una solución para usar inmutable que no estoy seguro de que sea aceptable, pero funciona. Ahora estoy usando la función cloneDeep de lodash.
let temp = _.cloneDeep(state) temp[action.payloadType][action.payloadLoc].push(action.payloadData) return (temp)Ok, cloneDeep fue una mala solución, pero encontré la solución adecuada al problema. Necesitaba devolver la declaración de esta manera:
case 'postNewItemFbData': let tempUpdate = state[action.payloadType][action.payloadLoc] tempUpdate.push(action.payloadData) return { ...state, [`${action.payloadType}.${action.payloadLoc}`]: tempUpdate }