Ошибка API дескриптора Ngrx - PullRequest
       8

Ошибка API дескриптора Ngrx

1 голос
/ 26 февраля 2020

Этот вопрос касается примера, предоставленного ngrx example-app (я не знал, могу ли я публиковать это на их странице Github или нет ...)

Так что при создании новый проект, я хотел следовать лучшим рекомендациям, поэтому я проверяю пример приложения в качестве справочного материала. В приложении, когда, например, они пытаются удалить сущность книги, выполните следующее:

  1. Компонент отправляет запрос с объектом действия «удалить книгу» и «книга» в качестве полезной нагрузки (selected-book-page) .component.ts: 40)
  2. Эффект обрабатывает это, и в случае успеха он вызывает действие «removeBookSuccess», которое удалит книгу из хранилища (collection.effects.ts: 65)

Теперь, во втором случае, когда происходит сбой, он вызывает 'removeBookFailure' также с объектом book, и фактически это действие будет обрабатываться точно так же, как 'addBookSuccess'

on(
    CollectionApiActions.addBookSuccess,
    CollectionApiActions.removeBookFailure,
    (state, { book }) => {
      if (state.ids.indexOf(book.id) > -1) {
        return state;
      }
      return {
        ...state,
        ids: [...state.ids, book.id],
      };
    }
  ),

Нужно ли нам это делать? Я имею в виду, что рассматриваемая книга никогда не была удалена с самого начала. Или мне здесь чего-то не хватает.

Спасибо за помощь!

1 Ответ

1 голос
/ 04 марта 2020

Может показаться странным, но он обслуживает сбои API. Чего я ожидаю, а чего не хватает, так это удаления книги при отправке действия removeBook.

Если вызов API завершается успешно, все уже обработано правильно, но если оно не удается, мы должны отменить удаление книги.

...