有没有办法为ngrx中的已调度操作触发“基本”操作?

Posted

技术标签:

【中文标题】有没有办法为ngrx中的已调度操作触发“基本”操作?【英文标题】:Is there a way to trigger an 'basic' action for an dispatched action in ngrx? 【发布时间】:2022-01-20 04:51:05 【问题描述】:

我有以下情况:

当以下这些操作之一被调度时,我想将reducer 中的saving 设置为true。但目前我没有在减速器中“捕捉”这些动作。我只是在我的effects 中“捕捉”这些。现在我有一个问题,是否可以创建一个“基本”动作,当我在下面调度我的动作时会自动调用它?如果可能的话,我想在我的reducer 中捕捉这些“基本”操作,以更改saving 的值。

/**
 * Update Match Conditions
 */
export const updateMatchConditions = createAction(
  AccountMatchingPageConstants.UPDATE_MATCH_CONDITIONS,
  props< accountId: string, connection: Connection, matchConditionUpdate: MatchConditionUpdate[] >()
);

/**
 * Reset Match Conditions
 */
export const resetMatchConditions = createAction(
  AccountMatchingPageConstants.RESET_MATCH_CONDITIONS,
  props< accountId: string, connection: Connection >()
);

【问题讨论】:

【参考方案1】:

你可以这样做:

  loremIpsum$ = createEffect(() =>
    this.actions$.pipe(
      ofType(updateMatchConditions),
      map(() =>
        basicActions.loremIpsum()
      )
    )
  );

【讨论】:

以上是关于有没有办法为ngrx中的已调度操作触发“基本”操作?的主要内容,如果未能解决你的问题,请参考以下文章

ngrx 调度的动作未达到效果

Ngrx - 减速器无法接收动作

处理异步 NgRx 操作

ngrx 效果:由一个效果调度的动作是不是立即被其他效果处理?

为啥调度时没有触发正确的操作?

从 ngOnInit 调度操作时的 ExpressionChangedAfterItHasBeenCheckedError