2016-08-19 5 views
4

私のアプリケーションには、ユーザー情報(現在ログに記録されている人など)を扱うstore_Aと、すべてのユーザーのイベントを処理するstore_Bという2つのMobXストアがあります。
ユーザーのログイン後、そのユーザーに関するすべてのイベントを表示する必要があります。 store_B内からログインしたユーザー情報にアクセスして、イベントを正しくフィルタリングできるようにするにはどうすればよいですか?私のイベントストアから私はそのデータをretriveするために私store_b内loggeduserNameデータを格納する必要があり、この時点で
...
コード:MobX - 店舗同士のコミュニケーションの仕方は?

class ObservableEventsStore { 
... 
//after logIn, save userName: 
    @action setUser(userName) { 
    this.givenUser = userName 
    } 
... 
@computed get filteredByUser() { 
    let filteredByUser = this.wholeList 
     .filter((event) => this.givenUser === event.user) 
     // this.givenUser is what i want to get from store_A 
    return filteredByUser 
    } 

私はUSERSTOREからloggedUserデータを取得したい、私はそれがそこに保存されています同様に...

+1

のような依存性の注入システムを使用し

  • それを使用.html) - ドキュメントの一部。 'ObservableEventsStore'は、UserStoreへの参照、またはあなたのUserへの参照を保持することができます。 – Tholle

  • 答えて

    5

    慣用的なアプローチはありませんが、userStoreへの参照を取得する手段はすべて有効です。 UserStoresがシングルトンである場合

  • EventStore前USERSTOREを構築し、それのconstuctorにEventStoreへの参照を渡す(または、後でそれを設定)

    1. :私は、一般的に、あなたがこれを達成するための3つのアプローチを取ることができると思います、ちょうどインポートおよびhttps://mobxjs.github.io/mobx/best/store(私は[「定義のデータ・ストア」]でアドバイスを好きInversifyJS
  • +0

    返信ありがとうございました:) 現時点で私は方法を考え出しました - コンポーネントのuserStoreからログオンしたユーザーを取得し、それをeventComponentのクエリで使用します。 'eventsStore.filterEventsByUser(userStore.loggedUserName)' しかし、私は間違いなくあなたのアイデアを試してみます。 – adamTrz