首页 > 解决方案 > 获取switchMap动作完成后的请求动作参数值

问题描述

我有一个简单的效果,它调用 API 来获取数据,在我得到数据后,我调度一个动作来将数据保存在存储中。我想根据动作请求做另一个动作或操作。那可能吗?

  loadMoviesById$ = createEffect(() => this.actions$.pipe(
    ofType('[Movies Page] Load Movies'),
    mergeMap((action) => this.moviesService.getAll(action.id)
      .pipe(
        map(movies => ({ type: '[Movies API] Movies Loaded Success', payload: movies })),
        catchError(() => EMPTY)
      )),
     tap((action) => {
            console.log(action.id) //How can I get action.id without passing with loaded success
        })
    )
  );

我希望通过行动。id 到 tap 参数,这是电影的请求参数

标签: angularrxjsngrxngrx-effects

解决方案


由于它超出了操作 ID 已知的范围,因此您无法访问它。作为修复,您有两种选择:

  • 在范围内移动tap方法mergeMap
  • 添加idMovies Loaded Success动作

推荐阅读