私はアプリケーションでredux-persistとredux-observableを使用しており、ストア状態が復元される前にobservableでラップされたAPI呼び出しが行われていることに気付きました。そして復元は古いデータでフェッチされた値をオーバーライドします。 persist/REHYDRATEアクションが到着するまで、バッファリング中にrootEpicを一時停止できますか?永続性が完了するまでrootEpicを一時停止します
1
A
答えて
0
「イベント」が発生するまで待つ場合は.skipUntil
を使用できます。例えば:私は推測
const action$ = new Rx.Subject();
// In your epic
action$
.skipUntil(action$.filter(({ type }) => type === 'hydrated'))
.subscribe(x => console.log(x));
// "Rehydrate"
action$.next({ type: 'hello!' });
action$.next({ type: 'hello?' });
action$.next({ type: 'any body there?' });
action$.next({ type: 'hydrated' });
action$.next({ type: 'do' });
action$.next({ type: 'you' });
action$.next({ type: 'see' });
action$.next({ type: 'me' });
action$.next({ type: 'now' });
<script src="https://unpkg.com/rxjs/bundles/Rx.min.js"></script>
は、あなたの叙事詩のすべてにこれを追加しないために、あなたはあなたのルート叙事詩または:)
した後に何かを.mergeMap()
ことができ以下のコメントの説明:
この問題は、他のミドルウェアで発生する。したがって、再水和が行われるまで、いかなる行動も起こさない方が良い方法かもしれません。
0
私はredux-persistに精通していませんが、ミドルウェアで問題を解決するために渡す順序に注意することは重要な場合もあります。ミドルウェアの中には、他のミドルウェアの前後にあるものが必要です。これが問題に関連すると思われる場合は、問題を交換してみてください。
+0
実際には、それは注文に関連していない、私も同じ問題があり、私はそれらの両方を試みた –
関連する問題
- 1. Android:AsyncTaskが完了するまでメインスレッドを一時停止できますか?
- 2. イベント/関数がjqueryまたはjavascriptで完了するまで一時停止
- 3. Cでのプログラム完了時に画面を一時停止
- 4. プログラムを終了するまでプロセスが一時停止中
- 5. setTimeoutが終了するまでjavascriptデータベースクエリを一時停止
- 6. UIViewアニメーションブロックアニメーションと完了コードの両方を一時停止します
- 7. ユーザーが入力を完了するまでループ操作を一時停止します
- 8. Websocketが接続するまで実行を一時停止します
- 9. テストが完了したら、boost :: unit_testを強制的に一時停止することはできますか?
- 10. 一時停止ボタンはAVAudioPlayerを一時停止するのではなく停止しています。
- 11. ajaxリクエストが完了するまでフォームのリクエストを停止
- 12. 機能でオーディオを一時停止または一時停止する
- 13. 一時停止を追加してもcmdが終了する
- 14. gitコマンドが終了するまでgulp-gitを一時停止するには?
- 15. ajaxリクエストが完了するまで関数の実行フローを一時停止する
- 16. redux-thunk:アクションクリエーターが完了するまでコンポーネントの実行を一時停止する
- 17. コンパイル完了時にVC++がコンピュータを停止させ、フリーズします
- 18. Javaは、シグナルが停止するまで、作業単位を完了します
- 19. スレッドが完了するまでプログラムの実行を停止します
- 20. 永続性を停止する方法JPA
- 21. pthreadを一時停止しますか?
- 22. matplotlibカスタムアニメーションループを一時停止します
- 23. モーショントラッキングを一時停止します
- 24. 複数のHTML DOM更新が完了するまで、jQueryの準備完了イベントを一時停止します。
- 25. OpenStackの仮想ノードが永続的に一時停止状態にある
- 26. ゴルーチンを停止/完了する方法
- 27. 一時停止/一時停止後に一時停止したシーン(停止していない状態)でSKActionを実行しないようにするには、一時停止/一時停止後にノードのテクスチャは変更されません。
- 28. 永続的なプロセスの一時停止デーモンを殺すことなく
- 29. Facebookの共有数、コールバック関数が終了するまで一時停止
- 30. httpリクエスト間に一時停止があると接続が終了しますか?
あなたのコードでは、すべてのアクションが 'ハイドレーティング済み'になる前に破棄されます。代わりに、彼らは緩衝され、 '水和'の後で叙事詩に返答されるべきです。 –
申し訳ありませんが、これがあなたの望むものだと思っています:-xしかし、あなたのアプリは、状態が再水化されるまで、他のミドルウェアと同じ問題に遭遇するようです。 –
>>しかし、あなたのアプリは、状態が再水化されるまでは、何の行動も起こしてはいけませんか? これも同様に機能します。 私は次の順路、コンポーネント起動アクション(e.i. FETCH_BACKGROUND)を持っています。 Epicはこのアクションを傍受し、バックグラウンドURLを取得する要求をサーバーに送信します。ミドルウェアがサーバーから応答を受け取ると、状態の背景URLを設定するFETCH_BACKGROUND_SUCCESSを起動します。 しかし、私の場合は、後に実行されるREHYDRATEは、新たに設定された状態を書き換えます。 –