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

ada*_*Trz 5 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
  }
Run Code Online (Sandbox Code Playgroud)

我想loggedUser从UserStore 获取数据,我也将它存储在那里......

mwe*_*ate 6

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

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