ReduxとRedux Sagaを使用したReact Nativeアプリがあります。私はIgniteのスターターのパターンも使用しています。また、他の多くの場所で使用されています。状態には、isFetchingフラグとAPI呼び出しが行われたときのエラーを表す「error」プロパティがあります。 APIコールの結果として発生します。React、Redux、およびRedux Sagaアプリでコンポーネント間で共有されているエラーとisFetching
Reduxストアをドメインや機能別に分割することをお勧めします。また、コンポーネントとReduxファイルの間に1対1の関係を持たせることは、一般的には良い考えではありません。
今、クレジットカードの支払いや管理ができるアプリがいくつかあるとしましょう。だから私の場合、私は "支払い"は良いドメインかもしれないと思っています。たとえば、画面Aでクレジットカードを使用して支払いを行い、画面Bに新しいクレジットカードを追加することができます。これを処理する2つのサガ、getCards sagaとmakePayment sagaがあります。どちらも、isFetchingフラグがtrueに設定されている、対応する「要求」アクションを持っています。そこから、それぞれがいくつかのAPI呼び出しを行い、データを変換してから、新しいデータでPaymentRedux状態を更新します。完了すると、isFetchingフラグをfalseに更新します。エラーが発生した場合は、適切なエラータイプで状態を更新します。
しかし、1つの画面の読み込みインジケータまたはエラー状態が、別の画面で開始された可能性のある結果に本当に結びついている必要がありますか?たとえば、画面Aで何らかの理由で支払いが失敗した場合、画面Bに移動します。画面Aで発生した無関係のエラーを画面Bに知らせますか?
だから私の質問は以下のとおりです。
- は、これが最初の の場所で私のReduxの状態のための賢明なスプリットでしょうか?そして、私はこのように私の異なる画面間で状態を共有する必要がありますか?
- エラー/ isFetchingを処理するにはどうすればよいですか?操作ごとに1つずつ、複数の "isFetching"フラグがありますか?各画面は興味のある特定のエラータイプに登録するだけですか?
推奨パターンが何であるか不思議です。アドバイスをいただければ幸いです。ありがとう!