Прежде всего - не нужно иметь несколько редукторов.Новый редуктор должен быть реализован, как только вы почувствуете, что ваш текущий редуктор слишком велик / имеет несколько вариантов ответственности / должен быть разделен из-за некоторых ограничений.
Возвращаясь к вашей проблеме - допустим, у вашего клиента есть «id»имущество.И в сценарии, который я хочу представить, приложение будет показывать список текущих идентификаторов - из customerList.CustomerList будет динамически обновляться с использованием действий ngrx (и шаблон будет прослушивать изменения).
В компоненте:
public customerIds$: Observable<string[]>;
public ngOnInit(): void {
this customerIds$ = this.store.select(
state => state.customersList.map(customer => customer.id);
);
}
В вашем шаблоне:
<div *ngFor="let id of customerIds$ | async">
{{id}}
</div>
Прямо сейчас (с использованием асинхронного канала) вы связали свой HTML-шаблон с компонентом ts.Итак, допустим, у вас есть кнопка, которая добавляет нового клиента в CustomersList:
<button (click)="addNewCustomer()">Add new customer</button>
А метод addNewCustomer()
отправляет действие, которое обрабатывается вашим магазином.Результатом действия является hiddin в редукторе, например:
... (reducer logic)
case ADD_NEW_CUSTOMER:
return {
...state,
customersList: [...state.customersLits, action.payload]
Где:
После нажатия кнопки в шаблоне отображается новый идентификатор клиента