我正在用Redux構建一個包含使用計時器的庫。我有一個動作創建者發送一個START_TIMER
事件,還應該在計時器對象上調用start
。代碼如下所示:Redux中的回放操作
// thunk action creator
const startTimer =() => (dispatch, getState) => {
if (!getState().timer.isRunning)
externalTimerObject.start()
dispatch({
type: 'START_TIMER'
})
}
有兩個問題,我試圖解決:
如果我想記錄我的行動到數據庫或這樣的localStorage我可以重播它們以達到一致的應用程序狀態,即使
rootState.timer.isRunning
爲真,我的計時器對象也不會運行。條件
if (!getState().timer.isRunning)
要求我知道掛載根狀態timer
的位置。由於我將它作爲庫構建,所以我不能認爲timer
將始終直接掛載到根狀態。