У меня была страница с контактными данными. Во время редактирования этой страницы и нажатия кнопки «Отправить» я выполнял действие «Отправить успех», как показано ниже: 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".
».