アクションを定期的にディスパッチする方法/場所は? 再帰setTimeout
を使用してカウントダウンを作成します。
例から取得すると、次のようになります。
// Can also be async if you return a function
export function incrementAsync() {
return dispatch => {
(function _r() {
setTimeout(() => {
// Yay! Can invoke sync or async actions with `dispatch`
dispatch(increment());
_r();
}, 1000);
})();
};
}
これは良い考えですか、それともミドルウェアを使用するか、別の場所からアクションを作成するなど、この問題に対するより良いアプローチがありますか?
私はストアを介してタイマーの開始/停止を制御できる、これの汎用バージョンを好みます。
サンプル実装をセットアップしましたhttps://gist.github.com/eguneys/7023a114558b92fdd25eをご覧ください