我是@ngrx/data
的新手,正在阅读文档。
使用guide,我已经能够复制以前手动完成的工作-例如,使用此概述页面上的service,以下工作将调用REST-API并将供应商添加到商店。
component.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),{ dispatch: false }
);
现在只想找到一种从'Supplier'
键入entityMetadata
的方法
const entityMetadata: EntityMetadataMap = {
Supplier: {}
};