私たちのコードベースでは、最近、多くの React コンポーネントを純粋なフラックス アーキテクチャに移行しました。したがって、データ フローは、Facebook チームから提供された次の画像とほとんど同じです:
(ソース: github.io )
私たちが直面している問題の 1 つは、サーバーを呼び出して結果を取得するために必要なボイラープレート コードが大量にあることです。プロセスは次のとおりです。
GET_DATA_FROM_SERVER
View は、何かと呼ばれるアクションをアクション作成者 ( としましょう) に伝達しViewActionCreator
ます。ViewActionCreator
ほとんどの場合、ペイロードを持たないこのアクションをディスパッチしてから、api.retrieveData
- サーバーからデータを受信すると
api.retrieveData
、アクションをディスパッチします。この場合SERVER_DATA_RECEIVED
、取得したデータをペイロードとして呼び出します。 - ストアは、ディスパッチされた 2 つのアクションに応答します。ただし、ほとんどの場合、ストアは 2 番目のアクション ( ) に対してのみ何かを
SERVER_DATA_RECEIVED
行います。これは、楽観的なビューの更新は、ログインなどのいくつかの例外を除いて、通常は必要ないか、あまり役に立たないことがわかっているためです。
api
したがって、私の質問は、ビューがのメソッドを直接呼び出すべきではなく、それらの api メソッドがデータ受信時にのみアクションをディスパッチするべきではない理由はありますか?
私たちが直面している別の関連する問題は、https://github.com/STRML/keyMirror を使用して生成された定数の使用に起因します。アクション クリエーターとストアで使用される定数を定数ファイルに追加するのを忘れるというエラーに繰り返し遭遇しますが、これは実行時まで現れません。ディスパッチャーであり、未定義の定数を使用すると、これは単純に switch ステートメントの最後まで浸透します。