私のチームと私は、reduxストアの設計に忙しくなりました。アプリケーションの性質上、私たちはreduxストアのさまざまなノード(ブランチ)間に固有のカップリング/依存関係を持っています。これらの依存関係を最もスケーラブルに処理するという我々の考えは、それを状態ツリーのそれ自身の別個のノードに抽出することでした。私たちが考えている構造を示しており、私たちが直面している問題に到達するために簡略化した例を挙げてみましょう:Reduxストアデータの依存関係の処理
- SectionA::などのデータAと
は、私たちの状態ツリーには、次のを持っていると言いますブール
- SectionB:Aが真であるならば、Bはおそらく、なぜこれはそれを行う、考えている10以上
なければならないこと、依存関係を持つ:int型
ここで私の質問は、これらの依存関係を考慮しながらアクションを減らすにはどうしたらいいですか?私たちのアプリケーションフローの場合:
- ユーザーたちはSectionCを紹介する場合に、何が起こるの依存
に基づいて
私たちが思いつくことができる唯一の解決策は、状態が変わらなくなるまで、アクションごとにUPDATEアクションを繰り返し実行するミドルウェアを持つことです。例えば、TOGGLE_DATA_Aアクションが(データAへの依存性を介して)データBを更新した後、次のUPDATEアクションは(データBへの依存性を介して)データCを更新し、次のUPDATEは何も更新せずにループを停止する。これはかなりハッキーです。
このような依存状態を減らす方が良い方法はありますか?あるいは、私たちの状態ツリーを違うように構造化するべきですか? Reduxの背後にある主要な概念の
ああ、私は参照してください。私は明らかにcombineReducersの単一ユースケースに巻き込まれました。あなたの非常に有益な答えと例をありがとう。 – CJNaude
確かに。うん、 'combinedReducers'は減速器ロジックを構築するための推奨されているデフォルトのアプローチですが、ユースケースのカスタムロジックも自由に書く必要があります。 – markerikson