angular - 获取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 参数,这是电影的请求参数
解决方案
由于它超出了操作 ID 已知的范围,因此您无法访问它。作为修复,您有两种选择:
- 在范围内移动
tap
方法mergeMap
- 添加
id
到Movies Loaded Success
动作
推荐阅读
- python - python,tkinter,创建条形图时出现问题
- reactjs - 使多台机器可以访问流
- javascript - React js将对象转换为数组以供useState
- node.js - 使用 GridView/BoxView 组件时反应 nodegui 调用堆栈超出错误
- php - 在 PHP 中创建基于优先级的多维数组
- javascript - 如何在下一个 js SSR 的标头 axios 中发送 deviceId 或 userId
- r - R:定义下限开和上限闭的范围
- c# - 没有数据显示 GridView Asp Net DevExpress
- flutter - Flutter 使用 Getx 更改图标按钮的主题和图标
- r - rollRegres 函数中的 grp 问题