Угловой

#angular #typescript #ngrx

Вопрос:

У меня есть таблица, в которой я добавляю, удаляю и обновляю данные, для этого я использую ngrx, используя метод CRUD, у меня проблема, когда я пытаюсь восстановить ошибку, если она есть в моих компонентах эффекта. Ошибка находится в моем файле эффектов

Вот ошибка: Неожиданный токен. Ожидался конструктор, метод, средство доступа или свойство

Действия

 export const ActionTypes = {

   // addSucces: '[PeriodicElement] addSucces',
  addError: '[PeriodicElement] addError',

  preAdd: '[PeriodicElement] preAdd',
  Add: '[PeriodicElement] Add',

};

export const addTable = createAction(
  ActionTypes.Add,
  props<{ payload: PeriodicElement }>()
);

export const addTableError = createAction(
  ActionTypes.addError,
  props<{ payload: any }>()
);
 

эффект

   addTable = createEffect(() =>
    this.actions.pipe(
      ofType(TableActions.ActionTypes.preAdd),
      mergeMap((name: any) =>
        this.tableService.create(name.payload).pipe(
          map(
            (table) => TableActions.addTable({ payload: table }),
            catchError((error) => of(TableActions.addTableError({payload: error})))
            )
          )
        )
      )
    )
  );
 

Я не знаю, можно ли так исправить ошибку

Ответ №1:

catchError не должно быть внутри оператора карты, но на том же уровне внутри оператора трубы.

 addTable = createEffect(() =>
    this.actions.pipe(
      ofType(TableActions.ActionTypes.preAdd),
      mergeMap((name: any) =>
        this.tableService.create(name.payload).pipe(
          map((table) => TableActions.addTable({ payload: table })),
          catchError((error) => of(TableActions.addTableError({payload: error})))
        )
      )
    )
  );