まず、この素晴らしいライブラリの多くの小道具!私はまだユースケースに苦しんでいます。私は別の叙事詩を最初に呼び出して、現在の叙事詩を続ける前に完了するまで待っています。ユーザーが物事を変えることができるフォームがあるとしましょう。他のデータをフォームにロードする前に、まず現在の変更を保存します。これについての考えは?他の叙事詩の中から叙事詩を呼び出す
1
A
答えて
3
あなたが好きなように聞こえます:ある叙事詩が別の叙事詩を蹴り出したい場合は、 が完了するまで待ってください。
1つのアプローチは(擬似名を使用して)、最初のアクションLOAD_OTHER_DATA
を受け取るとただちに1つのSAVE_FORM_FULFILLED
のリッスンを開始します。これはフォームが保存されたことを通知します。受け取った場合、mergeMap
(またはswitchMap
、この場合は関係ありません)は、他のデータloadOtherDataSomehow()
をロードして通常のビジネスを行うという呼び出しになります。最後に、私たちが待っているフォームの実際の保存を開始するトリックは、チェーン全体の最後にstartWith()
を追加することです。フォームを実際に保存するアクションを発行してディスパッチします。
const saveFormEpic = (action$, store) =>
action$
.ofType('SAVE_FORM')
.switchMap(() =>
saveFormSomeHow(store.getState().formDataSomewhere)
.map(details => ({
type: 'SAVE_FORM_FULFILLED'
}))
);
const loadOtherDataEpic = action$ =>
action$
.ofType('LOAD_OTHER_DATA')
.switchMap(() =>
action$.ofType('SAVE_FORM_FULFILLED')
.take(1) // don't listen forever! IMPORTANT!
.mergeMap(() =>
loadOtherDataSomeHow()
.map(otherData => ({
type: 'LOAD_OTHER_DATA_FULFILLED',
payload: otherData
}))
)
.startWith({
type: 'SAVE_FORM'
})
);
あなたの読み込みと保存の動作については言及していないので、これはユースケースに合わせて修正する必要がある疑似コードです。
関連する問題
- 1. 叙事詩の下で叙事詩を作成する
- 2. 別の叙事詩が値を出すまで叙事詩を遅らせる方法
- 3. Javaのcronと叙事詩が
- 4. RxJS Redux-Observables叙事詩の中でテストretryWhen
- 5. 新たな行動を出さない、寛大な叙事詩
- 6. redux-observable - 1つの叙事詩に複数のレビュックスアクションをディスパッチ
- 7. プロジェクト/叙事詩のチームサービスで要約レポートを作成
- 8. Epicは別の叙事詩のアクションに反応しません
- 9. 叙事詩AppOrchardのアプリ - oauthエラーレスポンスはstatusCode 200
- 10. Redux-observable:叙事詩の冗談テストに失敗しました
- 11. 叙事詩問題が存在するかどうかチェックし、そうでない場合は新しい叙事詩問題を作成します。
- 12. Groovyを使ってJiraで叙事詩のリンクを設定する方法
- 13. Redux Observable:複数のアクションで同じ叙事詩を発動する
- 14. redux-observableで叙事詩を使って2つのアクションを一緒にシーケンシング
- 15. react-router-redux以外の叙事詩からルータ履歴にアクセスする別の方法はありますか?
- 16. 叙事詩のオブザーバブルストリームの開始時と終了時にアクションを放出するベストプラクティスアプローチ?
- 17. 「この叙事詩を削除する」ボタンは正確に何をしますか?
- 18. 叙事詩の間で機能を共有することはできますか?
- 19. Visual Studio - ユーザーストーリー/叙事詩/バックログのようなフレンドリーな名前の名前を別のものに変更する
- 20. 叙事詩の関数が順不同で発砲している理由を理解できません
- 21. Redux Observables/RxJS:if/elseに基づいて異なるアクションを返す叙事詩を作る方法?
- 22. リンクされたストーリーが進行中に移動すると、叙事詩を進行中に自動的に遷移させます。
- 23. reduxの叙述叙述
- 24. VersionOne Web API - 特定の叙事詩のストーリーやタスクをすべて取得するにはどうすればよいですか?
- 25. redux-observableでは、レデューサーや叙事詩がアクションに最初に反応するかどうかを制御するにはどうすればよいですか?
- 26. ピボット・トラッカー:「完了」していないとき、私の叙事詩は「完了」しているのはなぜですか?
- 27. 行動を起こすことによって、犠牲になる叙事詩を開始/停止/再開することは可能ですか?
- 28. combineEpicsは私の叙事詩を組み合わせたときに、私はこのエラーを取得しています型エラー
- 29. 単一のredux観察可能な叙事詩で複数のアクションをオン/イールドする方法を教えてください。
- 30. C#の:詩は
徹底的な回答をいただきありがとうございます!これに加えてもう少し小さな質問がありますか?保存はオプションです。「ユーザーがそれを自分で保存していない場合、私は叙事詩が彼のためにそれをやりたがっています。だから私はObserver.if()メソッドを見て、それが収まるように見えますが、私は "loadOtherDataEpc"でオプションでそれを行うことが分かりません。 – robinvdvleuten
単純なif/else条件を使用してください – jayphelps
https://gist.github.com/jayphelps/7e708b59c17b4f327558e7e4501a0536 – jayphelps