タイマーを使用するReduxでライブラリを構築しています。イベントをディスパッチし、タイマー オブジェクトSTART_TIMER
も呼び出す必要があるアクション クリエーターがあります。start
コードは次のようになります。
// thunk action creator
const startTimer = () => (dispatch, getState) => {
if (!getState().timer.isRunning)
externalTimerObject.start()
dispatch({
type: 'START_TIMER'
})
}
私が解決しようとしている2つの問題があります:
アクションをデータベースまたは localStorage に記録して、それらを再生して一貫したアプリの状態を取得できるようにする場合、それ
rootState.timer.isRunning
が true であっても、タイマー オブジェクトは実行されません。条件付きでは、ルート状態のどこにマウントさ
if (!getState().timer.isRunning)
れているかを知っている必要があります。timer
これをライブラリとして構築しているため、timer
常にルート状態に直接マウントされるとは限りません。