我在reducer中有一个状态如下:
// The current source/selection const selection = { timespan: "-3660", customTimespan: false, pathIds: [''], source: undefined, direction: 0, appClassIds: [] };
我现在想要的是更新多个属性(timespan和customTimeSpan),类似这样(但这不起作用):
{ ...state, { timespan: action.timespan.value, customTimespan: action.timespan.value } };
如何更新状态的多个属性?
您需要从那里删除额外的对象闭包
{ ...state, timespan: action.timespan.value, customTimespan: action.timespan.value }
应该工作正常
如果你想在vanilla JS中做到这一点,你可以这样做:
Object.assign({}, state, { timespan: action.timespan.value, customTimespan: action.timespan.value})
我认为传播操作员更清洁,如果你有权访问它,应该走这条路.