angular - ngrx/effects 中的 if/else 怎么办?

标签 angular typescript ngrx

我正在使用 ngrx/effects。我想根据商店中的 foo 状态分派(dispatch)不同的操作。

我现在是这样的:

 @Effect() foo1$ = this.updates$
    .whenAction(Actions.FOO)
    .filter(obj => !obj.state.product.foo)
    .map<string>(toPayload)
    .map(x => ({ type: Actions.BAR1, payload: { x }}));

  @Effect() foo2$ = this.updates$
    .whenAction(Actions.FOO)
    .filter(obj => obj.state.product.foo)
    .map<string>(toPayload)
    .map(x => ({ type: Actions.BAR2, payload: { x }}));

有没有办法在 this post 中使用 RxJS 5 运算符,如 partitiongroupByifcase ?我现在无法正确使用它。

最佳答案

有 2 个独立的效果源就可以了。否则让它变得简单:

@Effect() foo$ = this.updates$
    .whenAction(Actions.FOO)
    .map(({action, state}) => {
        if (state.product.foo) {
            return { type: Actions.CHAT_GET_MESSAGES2, payload: { action.payload }};
        } else {
            return { type: Actions.CHAT_GET_MESSAGES, payload: { action.payload }};
        }
    });

关于angular - ngrx/effects 中的 if/else 怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299386/

相关文章:

javascript - 使用 Multer 将图像保存在 MongoDB 后端作为来自 Angular 的文件,它无法正常工作

javascript - 为每个订阅在扫描运算符上创建一个新的种子对象

javascript - 未处理的 promise 拒绝 [错误 : Got an invalid value for 'component' prop for the screen 'LocationType' . 它必须是有效的 React 组件。]

具有未知键但只有数值的对象的 typescript 类型?

angular - 如果商品不在商店中,则发送一个操作来获取它

reactjs - 后端有响应式编程的框架吗?

Angular 在继续之前等待 promise 解决

Angular - 在组件模板中声明变量

javascript - 如何通过返回 bool 值 Observable 的函数来过滤作为数组的 Observable

angular - 如何在 NGRX 中使用来自另一个功能的选择器