我正在用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
将始终直接挂载到根状态。