如何在NgRx中实现通用reducer和操作

时间:2020-04-28 08:23:34

标签: ngrx ngrx-store

我正在使用NGRX存储的Angular 9应用程序上工作,而我是NgRx的新手。有人可以让我知道如何开发一种通用的reducer / action,而无需一次又一次地编写reducer和action。例如,我有userList和productLst,它们具有类似的动作,那么我们如何实现一个通用的列表减少器/动作并将其用于(userList和productLst)

1 个答案:

答案 0 :(得分:0)

不幸的是,为了区分状态,实体和动作,每个功能都应具有自己的状态,归约器和动作。

但是您可以使用@ngrx/data来减少样板:https://ngrx.io/guide/data

EntityCollectionServiceFactory可以为您创建减速器和动作。

constructor(EntityCollectionServiceFactory: EntityCollectionServiceFactory) {
  this.heroService = EntityCollectionServiceFactory.create<Hero>('Hero');
  this.filteredHeroes$ = this.heroService.filteredEntities$;
  this.loading$ = this.heroService.loading$;
}

getHeroes() { this.heroService.getAll(); }
add(hero: Hero) { this.heroService.add(hero); }
deleteHero(hero: Hero) { this.heroService.delete(hero.id); }
update(hero: Hero) { this.heroService.update(hero); }

此处有更多信息:https://ngrx.io/guide/data/entity-collection-service#examples-from-the-demo-app