私はredux、react、react-routerおよびreselectを使用しています。 Header
とBody
という2つのコンポーネントを含む画面があります。 Header
にIDを選択するコンポーネントがあります。新しいIDが選択されると、新しいアクションがディスパッチされて、状態のIDをreduxで更新します。APIを呼び出してreact/redux内の他の子から1人の子供を更新する方法
このIDに基づいて、サーバーから要素をロードして状態に格納する非同期API呼び出しが必要です。この状態では、画面のレンダリングがトリガーされ、Body
に要素を表示する必要があります。読み込まれた要素は、再選択の状態から抽出されます。
Body
コンポーネントにはさまざまなAPI呼び出しがあり、コンポーネントは1つだけHeader
になるため、実際のシナリオはそれより少し複雑です。しかし、彼らは別の画面として扱うことができます。したがって、たとえば:
画面1:
コンポーネント:Header
、BodyTypeA
。 apiA
画面2:
コンポーネント:呼び出すためのAPI Header
、BodyTypeB
を。呼び出すAPI:apiB
私の理解では、API呼び出しは、状態に新しいIDを格納するときに減速機で実行する必要があります。しかし、どの画面が表示されているかを判断する方法と、画面上で共有されるコンポーネントによってアクションがディスパッチされた場合に呼び出すAPIはどれですか? Body
で何とかIDの変更を購読し、画面内からAPI呼び出しを開始できますか?画面のタイプは、反応ルータによって決定されます。どの画面が表示されているかを判断するために、減速機はルータにアクセスできますか?このようなシナリオを処理するためのベストプラクティスはありますか?
ええ、私は、アクションを減速機で呼び出す必要があると書いていましたが、実際にはアクションを処理するコードをディスパッチする前に意味していました。あなたが言うように、どちらがミドルウェアだろうか。両方のヒントをありがとう、私はそれを見ていきます。 – Amiramix