Как реализовать Generi c редуктор и действие в NgRx - PullRequest
0 голосов
/ 28 апреля 2020

Я работаю над приложением Angular 9, которое использует магазин NGRX, и я новичок в NgRx. Кто-нибудь может дать мне знать, как разработать обобщенный c редуктор / действие, в котором нам не нужно снова и снова писать редуктор и действия. Например, у меня есть userList и productLst, которые имеют схожие действия, как мы реализуем один редуктор / действие общего списка c и используем его для обоих (userList и productLst)

1 Ответ

0 голосов
/ 28 апреля 2020

К сожалению, чтобы различать 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- приложение

...