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