К сожалению, чтобы различать guish состояний, сущностей и действий, каждая функция должна иметь собственное состояние, редукторы и действия.
Но вы можете использовать @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- приложение