5

在我的应用程序中,我有两个 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
  }

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

4

1 回答 1

6

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

  1. 在 EventStore 之前构造 userStore 并在它的构造函数中传递对 EventStore 的引用(或在之后设置它)
  2. 如果 UserStores 是单例,只需导入并使用它
  3. 使用像 InversifyJS 这样的依赖注入系统
于 2016-08-19T09:14:22.847 回答