我是新手@ngrx/data
,我正在浏览文档。
使用该指南,我已经能够复制我以前手动完成的操作 - 例如使用此概述页面上的服务,以下工作调用 REST-API 并将供应商添加到商店。
组件.ts
onSave(supplier: Supplier) {
this.supplierService.add(supplier);
}
我知道我可以做到以下几点:
hello$ = createEffect(
() =>
this.actions$.pipe(
ofType('[Supplier] @ngrx/data/save/add-one/success'),
tap(console.log)
),
{ dispatch: false }
);
但是 - 通常是否有一种类型安全的方法可以连接到成功的 API 调用操作/实体操作?
更新 - 澄清
我正在使用@ngrx/data
,因此我不会直接自己创建操作以及类型的导出。
成功添加供应商后 - 在 http 调用后会产生一个类型为的操作:'[Supplier] @ngrx/data/save/add-one/success'
- 我想执行一个效果。除了使用字符串'[Supplier] @ngrx/data/save/add-one/success'
(如上所示)之外,还有一个类型安全的钩子吗?
以前(当我自己创建动作时)我会导出一个联合类型并做ofType(supplierActions.addSupplier)
更新 - 更接近答案
找到了ofEntityType
,ofEntityOp
这让我更接近我的目标,因为这些工作如下ofType
:
hello$ = createEffect(
() =>
this.actions$.pipe(
ofEntityType('Supplier'),
ofEntityOp(EntityOp.SAVE_ADD_ONE_SUCCESS),
tap(console.log)
),
{ dispatch: false }
);
现在只需找到一种'Supplier'
从entityMetadata
const entityMetadata: EntityMetadataMap = {
Supplier: {}
};