私は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
がtrueであっても、私のタイマオブジェクトは実行されません。条件付き
if (!getState().timer.isRunning)
は、ルート状態のどこにtimer
がマウントされているかを知る必要があります。私はこれをライブラリとして構築しているので、timer
は常にルート状態に直接マウントされるとは思いません。