2016-05-03 3 views
0

ヘッダーコンポーネントにユーザーがログインするためのダイアログを開くボタンがある状況があります。私のページの1つに、ユーザーにログインを要求するボタンがあります。ヘッダーにハンドルがあるのと同じダイアログを開きたいと思います。 Fluxを使用してページ上のアクションをトリガーし、ヘッダーがそのアクションをいくつかのストアでリッスンする方法を理解しています。Fluxを使用してコンポーネント間でイベント(データを処理しないイベント)を送信することは適切ですか?

私の質問は、ユーザーによるこのアクションはデータと関係がないため、これはデータフローパターンであるFluxに適しているのでしょうか?

+0

すでにFluxを使用してアプリケーションを構築している場合は、すべての操作を行う必要があります。定期的なイベントとの混合を開始すると、物事は面倒な速さになるでしょう。 – hampusohlsson

+0

ヘッダーには、ボタンのクリック時にドロップダウンを開く状態が必要です。同じデータが格納されているストアであれば、アクションで開くことができます。ダイアログを開くアクションは、フラックスを伴う通常のパターンです –

答えて

2

これは、フラックスアクションを使用するには、完全に有効な理由のように思える:

  • は、あなたの店は(どこでも)
  • あなたのディスパッチャにshowLoginModalアクションをトリガーすることができ、あなたのボタンどこか
  • 一部loginModalActive: false変数を保存していloginModalActive: true
  • に更新を保存し、変更を
  • (ルート)コンポーネントがストアの更新に応答し、モーダルを示します

loginModalActiveは実際にはアプリケーション状態ではなく、代わりにコンポーネント状態であるため、店舗内にいるべきではないと主張する人もいます。

フラックスアプリケーションが大規模な私の個人的な経験は、フラットな一方向データフローを固執することは、純粋なアプリケーション状態データのみストアの解釈よりも優れていることです。
代わりに、逆パターンである子コンポーネントにコールバック関数を渡すことがあり、管理とデバッグを非常に難しくする傾向があります。

関連する問題