MobX - 如何在商店之间进行交流?

时间:2016-08-19 07:45:55

标签: javascript mobx

在我的应用程序中,我有两个MobX商店 - store_A用于处理用户信息(当前已登录等),store_B用于处理所有用户的事件。
用户登录后,我想显示有关该用户的所有事件。 如何从store_B中访问记录的用户信息(来自store_A),以便我可以正确过滤事件? 此时我必须在我的store_b中存储loggeduserName数据以检索该数据...
我的活动商店的代码:

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 个答案:

答案 0 :(得分:6)

没有惯用的方法,任何获取对userStore的引用的方法都是有效的。我认为一般来说,您可以采取三种方法来实现这一目标:

  1. 在EventStore之前构造userStore并将引用传递给它的constuctor中的EventStore(或之后设置它)
  2. 如果UserStores是单件,只需导入并使用它
  3. 使用依赖注入系统,如InversifyJS