Ich baue eine Bibliothek mit Redux, die einen Timer verwendet. Ich habe einen Aktionsersteller, der ein START_TIMER
Ereignis auslöst und sollte auch start
auf einem Timer-Objekt aufrufen. Der Code sieht wie folgt aus:Wiederholen von Aktionen in Redux
// thunk action creator
const startTimer =() => (dispatch, getState) => {
if (!getState().timer.isRunning)
externalTimerObject.start()
dispatch({
type: 'START_TIMER'
})
}
Es gibt zwei Probleme Ich versuche zu lösen:
Wenn ich möchte, dass meine Handlungen in eine Datenbank oder local so loggt dass ich sie wiedergeben kann, um zu einem konsistenten App-Status zu kommen, selbst wenn
rootState.timer.isRunning
wahr ist, wird mein Timer-Objekt nicht ausgeführt.Die bedingte
if (!getState().timer.isRunning)
erfordert, dass ich weiß, wo im Stammzustandtimer
montiert ist. Da ich dies als eine Bibliothek baue, kann ich nicht davon ausgehen, dasstimer
immer direkt in den Stammzustand eingehängt wird.