像某个动作的返回值

时间:2017-07-12 04:04:58

标签: angular ngrx ngrx-effects ngrx-store

我想知道是否有最佳做法来模拟ngrx Action的返回值。

让我们说,我有一个创建新地址的通用组件。这可以从整个应用程序的多个地方调用:

@Effect()
createAddress: Observable<Action> = this.actions$
    .ofType(mod.CREATE_NEW_ADDRESS)
    .map(() => go("/address/create"));

当用户输入所有地址信息并保存地址时,来电者 -  并且只有调用者 - 应该得到关于此的通知并更新自己(例如,将地址添加到组合框或在摘要中以文本方式显示)。

因此,单个字段&#34; latestCreatedAddress&#34;在商店是不够的。我需要多个字段,每个字段对应一个呼叫者。

是否有一些聪明的方法来处理这样的案件?

1 个答案:

答案 0 :(得分:0)

如果不了解您当前的AppState状态,很难给出具体的建议。您只需要让AppState的各个部分包含所需的地址。

例如,对于堆栈溢出,我们可以在您的问题下和我的答案下添加注释。 AppState(为简单起见,不规范化数据)看起来像这样:

{
  question: [{
    text: 'some question',
    comments: ['a', 'b'],
    answers: [{
        text: 'some answer',
        comments: ['c']
    }]
  }]
}

此处的评论与您的​​地址类似,后者是其他一些数据的子项。