如何同时分派多个ngrx操作

mattc19

我正在使用ngrx,并且有一个Scenerio,需要同时调度2个动作。我的州有更新和更新的属性,如下所示。

//from reducer
const defaultCardState: CardState = {
    ids: [],
    entities: {},
    loaded: false,
    loading: false,
    adding: false,
    added: false,
    updating: false,
    updated: false,
    deleting: false,
    deleted: false
};

这些是我从组件中分派的操作

this.store.dispatch(fromCard.updateCard({id: id1, changes: {name: name1}}))
this.store.dispatch(fromCard.updateCard({id: id2, changes: {name: name2}}))

以下是我的行动,减速剂和功效

//Update Card Actions
export const updateCard = createAction('[Cards] Update Card', props<{id: string, changes: any}>())
export const updateCardSuccess = createAction('[Cards] Update Card Success', props<{changes: any}>());
export const updateCardFail = createAction('[Cards] Update Card Fail')

//Reducer
on(fromCards.updateCard, (state) => ({...state, updating: true, updated: false})),
    on(fromCards.updateCardSuccess, (state, action: any) => ({...cardAdapter.updateOne(action.changes, state), updated: true, updating: false})),
    on(fromCards.updateCardFail, (state, action: any) => fromCards.updateCardFail),

//Update Card Effect
updateCard$: Observable<Action> = createEffect(() => this.actions$.pipe(
    ofType(fromCardActions.updateCard),
    map((action: any) => { return {id: action.id, changes: action.changes}}),
    switchMap((action: any) => this.cardService.updateCard(action).pipe(
        map((res) => (fromCardActions.updateCardSuccess({changes: action }))),
        catchError(() => of(fromCardActions.updateCardFail))
    ))
))

什么是最好的方法来一次又一次地调度这些操作,以使更新字段和更新字段不会冲突?如果仅运行其中之一,则可以运行,但是如果像上图所示将它们一起分发,则只有一个完成。我看到两个动作都被调度了,但是只有一个成功动作被调度了。

托尼·恩戈

您可以在效果中调度多个动作,我建议您仅在效果中执行此操作

考虑下面的例子

@Effect()
dispatchMultiAction$: Observable<Action> = this.actions$.pipe(
    ofType<SomeAction.Dispatch>(someActions.Dispatch),
    switchMap(_ =>
        of(
            new someActions.InitData(),
            new someActions.GetData(),
            new someActions.LoadData()
        )
    )
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从NgRx中的单个效果分派多个动作?

来自分类Dev

如何在应用程序终止时保留失败的操作并在应用程序重新打开时分派它们?

来自分类Dev

如何分派多个动作

来自分类Dev

如何有条件地从ngrx中的效果分派多个动作

来自分类Dev

熊猫:同时分配多个* new *列

来自分类Dev

重新运行方法时,在方法中循环dispatch_after会导致许多同时分派

来自分类Dev

重新运行方法时,在方法中循环dispatch_after会导致许多同时分派

来自分类Dev

我可以从 ngrx 中的特征存储分派 root 操作吗?

来自分类Dev

如何使用ngrx / effects执行多个相关的操作/效果/动作

来自分类Dev

React Router + Redux-在路由更改时分派异步操作?

来自分类Dev

React Router + Redux-在路由更改时分派异步操作?

来自分类Dev

( React-Native ) 在组件级别检测操作何时分派结果或负载

来自分类Dev

通过多个axios请求分派不同的操作

来自分类Dev

阅读时如何在Java中同时分隔“ =”和“ ==”

来自分类Dev

如何同时分析和流式处理RaspberryPi视频

来自分类Dev

Java的编译时分派参数是否被破坏?

来自分类Dev

仅在Rxjs轮询上某些属性发生更改时才分派NgRx操作

来自分类Dev

仅在Rxjs轮询上某些属性发生更改时才分派NgRx操作

来自分类Dev

NgRx-路由器过渡期间正在分派多个动作

来自分类Dev

操作系统如何同时在多个CPU内核上调度多个线程?

来自分类Dev

是否可以使用 TypeScript 对象来分派 redux 操作(以及如何分派)?

来自分类Dev

分派动作时的ngrx路由

来自分类Dev

循环以刮擦同一页面上的多个元素,同时分别存储它们

来自分类Dev

同时分配numpy / torch轴的多个不同切片

来自分类Dev

用于数据表中多个同时分配的`:=`不符合更新的值

来自分类Dev

循环以刮擦同一页面上的多个元素,同时分别存储它们

来自分类Dev

如何从同一组件分派多个动作?

来自分类Dev

Redux 如何使用 fetch 方法分派多个动作类型

来自分类Dev

如何在Activity上添加多个片段的同时划分android的操作栏

Related 相关文章

  1. 1

    如何从NgRx中的单个效果分派多个动作?

  2. 2

    如何在应用程序终止时保留失败的操作并在应用程序重新打开时分派它们?

  3. 3

    如何分派多个动作

  4. 4

    如何有条件地从ngrx中的效果分派多个动作

  5. 5

    熊猫:同时分配多个* new *列

  6. 6

    重新运行方法时,在方法中循环dispatch_after会导致许多同时分派

  7. 7

    重新运行方法时,在方法中循环dispatch_after会导致许多同时分派

  8. 8

    我可以从 ngrx 中的特征存储分派 root 操作吗?

  9. 9

    如何使用ngrx / effects执行多个相关的操作/效果/动作

  10. 10

    React Router + Redux-在路由更改时分派异步操作?

  11. 11

    React Router + Redux-在路由更改时分派异步操作?

  12. 12

    ( React-Native ) 在组件级别检测操作何时分派结果或负载

  13. 13

    通过多个axios请求分派不同的操作

  14. 14

    阅读时如何在Java中同时分隔“ =”和“ ==”

  15. 15

    如何同时分析和流式处理RaspberryPi视频

  16. 16

    Java的编译时分派参数是否被破坏?

  17. 17

    仅在Rxjs轮询上某些属性发生更改时才分派NgRx操作

  18. 18

    仅在Rxjs轮询上某些属性发生更改时才分派NgRx操作

  19. 19

    NgRx-路由器过渡期间正在分派多个动作

  20. 20

    操作系统如何同时在多个CPU内核上调度多个线程?

  21. 21

    是否可以使用 TypeScript 对象来分派 redux 操作(以及如何分派)?

  22. 22

    分派动作时的ngrx路由

  23. 23

    循环以刮擦同一页面上的多个元素,同时分别存储它们

  24. 24

    同时分配numpy / torch轴的多个不同切片

  25. 25

    用于数据表中多个同时分配的`:=`不符合更新的值

  26. 26

    循环以刮擦同一页面上的多个元素,同时分别存储它们

  27. 27

    如何从同一组件分派多个动作?

  28. 28

    Redux 如何使用 fetch 方法分派多个动作类型

  29. 29

    如何在Activity上添加多个片段的同时划分android的操作栏

热门标签

归档