Как получить активированный маршрут при использовании модуля навигации в хранилище роутера? - PullRequest
0 голосов
/ 07 сентября 2018

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

 return of(
        new routerActions.Go({
          path: ['./', payload.rootPath],
          extras: { relativeTo: this.route },
        }),
      );

 constructor(
    private actions$: Actions,
    private route: ActivatedRoute,
  ) {}

Я вставляю ActivatedRoute в мой конструктор модуля эффектов, который, похоже, является проблемой здесь,Как я могу получить активированный маршрут за пределами моего компонента и передать его в действие навигации?

1 Ответ

0 голосов
/ 08 сентября 2018

ActivatedRoute специфичен для каждого маршрутизируемого компонента.

Это дает вам пару вариантов.

  1. Перемещение по корневому маршруту для возврата необходимых данных.

let route = this.router.routerState.root;
while (route.firstChild) {
route = route.firstChild;
}

return route.snapshot;
  1. Передайте ActivatedRoute от маршрутизируемого компонента в пакете.

  constructor(private store: Store<AppState>, private activatedRoute:ActivatedRoute) {}

  doSomething() {
    this.store.dispatch(new Action.YourAction({ id: actionId, route: activatedRoute });
  }
  
 
...