Как получить старое состояние в ngrx, нужно отменить код любого сбоя - PullRequest
0 голосов
/ 10 апреля 2020

Пример: пусть пользователь находится на странице 5, и пользователь нажимает на следующую страницу, и этот вызов API завершается неудачно, тогда я должен вернуться на страницу 5 обратно, при этом выбор всех фильтров остается прежним. И показать данные пользователю

1 Ответ

1 голос
/ 10 апреля 2020

вам нужно иметь эффект для запроса страницы. Его действие должно иметь номер страницы. например loadPage({page: 6}). Тогда вам нужно отловить ошибку в this.http.get().pipe. И поскольку вы знаете запрашиваемую страницу, вы можете отправить действие, чтобы снова загрузить страницу 5.

this.http.get().pipe(
  catchError(() => of(loadPage({page: page -1}))), // <- page var should be available from the parent context of the effect.
)

Не забудьте охватить случай, когда страница имеет значение 0 или -1, возможно, вы просто хотите потерпеть неудачу и отобразить сообщение об ошибке пользователю.

...