RXJS застрял в исходном состоянии - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть многочастная форма, где пользователи могут оставлять комментарии и замечания под каждым разделом. Каждый раздел называется дисциплиной.Код для этого:

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,
   });

Всякий раз, когда я загружаюсь с новым идентификатором, я получаю первое загруженное состояние.Есть ли какой-нибудь способ предугадать, что находится в состоянии с плановой проверкой или чем-то еще?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...