2016-12-14 6 views
0

現在、私のアプリケーションには20以上のルートがあります。これらのルートにはそれぞれ複数のAPI呼び出しがあるので、AJAX呼び出しを行うにはredux-sagaを使用する予定です。rootSagaに巨大な配列を作成せずに複数のredux-sagasを使用する方法はありますか?

ドキュメントを読んでから、私は次の操作を行うことができるようになりますように、それが見えます:

  1. 各ルートは、複数のサガ自体を得、それ自身の「ルート」サガを持つことになります。
  2. このルート特有のサガは、次に実際のメインルートサガにエクスポートされ、次にcreateSagaMiddleware.run()に渡されます。

だから、このようなものになります。私は、これは完全に正常に動作する必要があります信じて

import { screen1Saga } from './screen1/sagas'; 

export function* rootSaga() { 
    yield [ screen1Saga(), ... ]; // array of route-specific sagas 
} 

:この操作を行うと、メインサガファイルに次に

export function* screen1Saga() { 
    yield [ ... ]; // different sub-sagas for screen1 route 
} 

を。しかし、私は20 +ルート特定のサガが作成されたときにどのように見えるか心配です。ルートサガでは、それはただの膨大な膨大な量のサゲの配列にすぎません。

これを行うには別の方法がありますか?好ましくは、経路特有のサガが対応するフォルダ内にカプセル化され、アプリ構造の最上部まですべてエクスポートする必要はありません。

他の人がどのように多くのサゲを扱ったかを知りたい人にはちょっと好奇心が強いです。
ご協力いただきありがとうございます。

答えて

1

React-Boilerplate Repoは、Reactアプリケーションをスケールするいくつかの方法のかなり良い例です。彼らはasyncInjectorsというユーティリティファイルを使用しています。実際にはサガを追加する作業には、sagaMiddleware.run(saga)をフードの下に呼び出すだけです。

関連する問題