0
我有一个调度功能(在event_actions.js)期间改变正在从一个组件调用:我的时刻的时间Redux的减速
export function moveEvent(event, start)
{
let startEv = event.start // moment obj
let endEv = event.end // moment obj
let diff = endEv.diff(startEv)
console.log("time diff", diff) // time diff 7200000
let newstart = moment(start, "YYYYMMDDHHmm")
console.log("newstart", newstart) // newstart 2017-06-14T06:00:00-04:00
console.log("newend", newstart.add(diff, 'milliseconds').format()) // newend 2017-06-14T08:00:00-04:00
let payload = {
start: newstart,
end: newstart.add(diff, 'milliseconds'),
id: event.id,
}
return { type: 'MOVE_EVENT', payload: payload }
}
这里是我的“MOVE_EVENT”的情况下,从event_reducer.js:
case 'MOVE_EVENT': {
console.log("eventstart",action.payload.start.format()) // eventstart 2017-06-14T10:00:00-04:00
console.log("eventend",action.payload.end.format()) // eventend 2017-06-14T10:00:00-04:00
console.log(state.events) // prints all events including the one I'm moving which already has the bad values for start and end
let eventIndex = state.events.findIndex(event => event.id === action.payload.id)
let newEvent = state.events[eventIndex]
newEvent.start = action.payload.start
newEvent.end = action.payload.end
return Object.assign({},
state, {
events: [
...state.events.slice(0, eventIndex),
newEvent,
...state.events.slice(eventIndex + 1),
]
}
)
}
注释是由console.logs打印的内容。从event_actions.js打印的日期是正确的。
我也注意到,当我打印出state.events时,坏值已经处于我的状态。在我的案例甚至返回任何东西之前,我的状态如何更新?
答案: 时刻(NEWSTART)。新增(DIFF,“毫秒”)
我仍然不知道我的状态回来之前如何变化,但克隆的时刻对象的工作。
感谢您的快速回复!我没有看到文档的可变部分。我能够像这样修复:moment(newstart).add(diff,'milliseconds') – pnkflydgr