微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NGRX 多店功能通讯

如何解决NGRX 多店功能通讯

注册了多个功能商店

StoreModule.forFeature('feature1',reducers)
StoreModule.forFeature('feature2',reducers)
StoreModule.forFeature('feature3',reducers)

在某些情况下,一家商店会影响其他商店。

例如,在“feature1”中分派一个动作“edit”应该在功能 2 和功能 1 中触发服务器调用,并且还应该更改功能 3 的状态。

我是否应该在每个功能商店中创建一个效果来收听功能 1 的操作,即使它是另一家商店? 那么特性 3 呢?如何更改其他功能存储的状态,假设在功能 1 效果中服务器请求完成后:

 EditFeature1$: Observable<Action> = createEffect(() =>
    this.action$.pipe(
      ofType(Feature1Action.Editaction),mergeMap(action =>
        this.http.get(`url`).pipe(
          map((data) => {
            // how to affect other states from here (of feature 2 or 3)
          }),catchError((error: Error) => {
            return of(Error(error));
          })
        )
      )
    )
  );

更改和听取其他功能商店操作是否是一个好习惯?或者每个人都需要被隔离,只知道这是一个自己的动作和状态

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。