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