我正在使用 Redux 构建一个涉及使用计时器的库。我有一个调度START_TIMER
事件的动作创建者,还应该调用start
一个计时器对象。代码如下所示:
// 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
总是会直接安装到根状态。