У меня есть многочастная форма, где пользователи могут оставлять комментарии и замечания под каждым разделом. Каждый раздел называется дисциплиной.Код для этого:
getComments(planId: number, disciplineType: DisciplineType): Observable<DisciplineComment[]>
{
let discipline = DisciplineType[disciplineType];
let url = this.odataUrl + "Comments?$expand=resolution&$filter=plan_Id eq " + planId + " and discipline eq '" + discipline + "'";
return this.http
.get<{ value: DisciplineComment[] }>(url)
.pipe(map(businessUnits => businessUnits.value || []));
}
Для контекста здесь есть Эффект
@Effect()
loadPandLComments$: Observable<Action> = this.actions$
.ofType<Load>(PandLCommentActionTypes.Load).pipe(
switchMap(action => this.planService.getComments(action.payload, this.disciplineType)),
map((comments: any) => new LoadSuccess(comments)),
catchError(err => of(new LoadFail(err)))
);
И Редуктор
case PandLCommentActionTypes.Load: {
return {
...state,
loading: true,
};
}
case PandLCommentActionTypes.LoadSuccess: {
return adapter.addMany(action.payload, {
...state,
loaded: true,
loading: false,
});
}
и Состояние
export interface State extends EntityState<PandLComment> {
loaded: boolean;
loading: boolean;
}
export function sortByCreatedAt(a: PandLComment, b: PandLComment): number {
return Number(b.createdAt) - Number(a.createdAt);
}
export const adapter: EntityAdapter<PandLComment> = createEntityAdapter<PandLComment>({
selectId: (comment: PandLComment) => comment.id,
sortComparer: sortByCreatedAt,
});
export const initialState: State = adapter.getInitialState({
loaded: false,
loading: false,
});
Всякий раз, когда я загружаюсь с новым идентификатором, я получаю первое загруженное состояние.Есть ли какой-нибудь способ предугадать, что находится в состоянии с плановой проверкой или чем-то еще?