我正在尝试调度相对于组件路线的路由器存储导航操作。路由跟踪日志显示,用于导航的相对路径是应用程序路径而不是组件路径。
return of(
new routerActions.Go({
path: ['./', payload.rootPath],
extras: { relativeTo: this.route },
}),
);
constructor(
private actions$: Actions,
private route: ActivatedRoute,
) {}
我正在将ActivatedRoute
注入我的效果模块构造函数中,这似乎是这里的问题。如何将激活的路线获取到组件之外,并将其传递给导航操作?
答案 0 :(得分:4)
ActivatedRoute特定于每个路由组件。
这给您几个选择。
let route = this.router.routerState.root;
while (route.firstChild) {
route = route.firstChild;
}
return route.snapshot;
constructor(private store: Store<AppState>, private activatedRoute:ActivatedRoute) {}
doSomething() {
this.store.dispatch(new Action.YourAction({ id: actionId, route: activatedRoute });
}
答案 1 :(得分:1)
通过 activatedRoute 对我不起作用。这就是我所做的。选择器 selectRouterUrl 从状态中选择当前 URL。
DefaultTCPHost = 'localhost'