Tengo un estado en un reductor que se ve así:
// The current source/selection const selection = { timespan: "-3660", customTimespan: false, pathIds: [''], source: undefined, direction: 0, appClassIds: [] };Lo que quiero ahora es actualizar varias propiedades (timespan y customTimeSpan), algo como esto (pero esto no funciona):
{ ...state, { timespan: action.timespan.value, customTimespan: action.timespan.value } };¿Cómo puedo actualizar varias propiedades de un estado?
Debe eliminar el cierre de objeto adicional de allí
{ ...state, timespan: action.timespan.value, customTimespan: action.timespan.value }debería funcionar bien
Si quisieras hacerlo en Vanilla JS, podrías hacer esto:
Object.assign({}, state, { timespan: action.timespan.value, customTimespan: action.timespan.value})Creo que el operador de propagación es mucho más limpio y debería seguir esa ruta si tiene acceso a él.
También puede lograr lo mismo utilizando el operador de propagación que le permite tener los nuevos valores en un objeto, en lugar de tener que codificarlos:
const selection = { timespan: "-3660", customTimespan: false, pathIds: [""], source: undefined, direction: 0, appClassIds: [] }; const newSelectionValues = { timespan: "-3600", customTimespan: true }; const newSelection = { ...selection, ...newSelectionValues };