2016-04-13 5 views
1

私は2つのFlux Containers(CustomerList)を持っています。これらは基本的にフィルタリングが可能で、顧客のエンティティのページ番号付きリストです。これらは同じページに表示されますが、フィルタは独立しています。フィルタを変更したりページを前進させたりするたびに、Action Creatorsを介してサーバーにリクエストを送信し、ディスパッチャを起動し、イベントを発生させてコンテナを更新するCustomerStoreを更新する必要があります。Flux:同じ店舗、異なる州の複数の容器

フラックスでストアがシングルトンになっている場合(そしてcalculateStateが静的​​メソッドである場合)、同じコンポーネントの2つのインスタンスを別のインスタンスの内容を上書きしないで、どのように保つことができますか?あなたの説明から

答えて

1

は、私は理解:

  • あなたはすべての顧客を保持しているフラックスCustomerStore、
  • そして<CustomerList>コンポーネントのインスタンスを持って、それぞれからデータをフェッチすることをCustomerStore
  • ただし、CustomerStoreから別のデータをフェッチする必要があります
  • こうした設定で

、あなたは可能性:<CustomerList>のインスタンスごとに

  • - コンポーネント<CustomerList>の状態のすべてのフィルタ設定を保存します。あなたのコンポーネントの後
  • は、その後、あなたの(シングルトン)CustomerStoreからサーバ応答の和集合が含まれています唯一のフィルタリングされた結果

レンダリングするために、状態からフィルタを適用ストアから(一部getStateFromStores()コールを通じて)データをフェッチAjaxは両方のインスタンスから呼び出しますが、各インスタンスはすべての顧客レコードを取得しますが、各インスタンスは独自のフィルタのみを表示します。例で

  • CustomerStore 1
  • <CustomerList>インスタンス1件の火災 'GETページ2' アクションサーバーから
  • 結果(2ページ
  • <CustomerList>インスタンス1、インスタンス2の両方を表示するページ空であります顧客)がCustomerStoreに追加されます。
  • カスタマーストアの変更点
  • <CustomerList> 1はストア全体の内容を取得します。サーバー(2ページを超えた新規顧客)からのノウハウのみページ2
  • <CustomerList> 2は、ストア全体の内容を取得し、1つの
  • <CustomerList> 2セットは「唯一の新しい顧客をフィルタリングし、火災のアクション
  • ページのみを表示結果が追加されますCustomerStore
  • <CustomerList> 1は、店舗全体の内容を取得し、表示する唯一の2ページ
  • <CustomerList> 2は、ストア全体の内容を取得し、(フィルタが2ページを超えて新たな顧客を含んでいるための)唯一の新しい顧客を示し(前回からの変更はレンダリングしません)
関連する問題