Последовательность отправленных действий изменилась после перехода с ngrx @ 2 на ngrx @ 7 (общее обновление проекта Angular @ 4 до Angular @ 7) - PullRequest
1 голос
/ 06 ноября 2019

У меня была страница с контактными данными. Во время редактирования этой страницы и нажатия кнопки «Отправить» я выполнял действие «Отправить успех», как показано ниже: Angular @ 4, ngrx@2.2.1, rxjs@6.2

import { go, routerActions, replace } from '@ngrx/router-store';
@Effect()
public gotoContactDetailSection = this._actions$.pipe (
  ofType<ViewContactInfoAction>(someAction),
  map(action => action.payload),
  switchMap(p =>
     [
         go({ path: [ p.plan, p.scheme, p.primaryKey, p.section ]}),
         new AddSuccessToastAction('Update Success') // Implementation of ngrx, Action class with type = ''[toaster] add''.
     ]
 )
);

«Go», используемый для навигациина некоторую страницу и на ту страницу, которая использовалась для отправки «[toaster] remove» Действие на «NavigationStart».

Выходная последовательность отправленных действий: «[toaster] remove», «[Router] Go», «[toaster] add "

После обновления до Angular 7 и ngrx 6, ngrx удалил действия маршрутизатора (перейти, вернуться, заменить и т. д.), и мне пришлось создавать настраиваемые действия, как предложено в руководстве по миграции ngrx, а теперь и пользовательское" Go "действие было обработано с помощью вызова router.navigate (), и мой эффект изменился на:

Angular @ 7, ngrx@7.4, rxjs@6.3

@Effect()
public gotoContactDetailSection = this._actions$.pipe (
  ofType<fromAppHeader.ViewContactInfoAction>(AppHeaderActions.VIEW_CONTACT_INFO),
  map(action => action.payload),
  map(p =>
   [
     new go({ path: [ p.plan, p.scheme, p.primaryKey, p.section ]}), // Custom implementatin of " 
     [Router] Go" action.
     new AddSuccessToastAction('Update Success') // Implementation of ngrx, Action class with type = '[toaster] add'.
   ])
);

Выходная последовательностьотправленные действия:

"[toaster] add"
"[Router] Go"
"@ngrx/router-store/request"
"[toaster] remove"
"@ngrx/router-store/navigation"
"@ngrx/router-store/navigated"  

Теперь моя проблема в том, что я хочу, чтобы «[toaster] add» отправлялся после действия «[Router] Go» (включая запрос, навигацию и навигацию, которые неявно вызываются маршрутизатором).navigate) чтобы добавленный тост не былt удалено с помощью действия «[toaster] remove».

Настраиваемое действие «go» реализовано в соответствии с рекомендациями в разделах «Навигационные действия» на «https://ngrx.io/guide/migration/v4".

».
...