当我在某个URL“... / browser”上导航时,我有一个组件“浏览器” . 视图会根据某些查询参数进行更新,因此我可以使用“... / browser?p = 1”这样的网址 .
我希望网址“... /浏览器”自动重定向到“... / browser?p = N”,其中N是我们启动应用程序时请求并存储在ngrx-store中的参数 .
我在初始化“Browser”组件时尝试添加它:
ngOnInit(): void {
this.store.select((s: AppState) => s.media.rootMediaId)
.combineLatest(this.route.queryParams, (root, query) => {
return {root, query};
})
.subscribe(({root, query}) => {
this.rootId = root;
if (query['p'] === undefined) {
this.router.navigate([''], { relativeTo: this.route, queryParams: {p: this.rootId} });
}
})
[...]
}
因此,我订阅了rootMediaId和queryParams,以便在获取rootMediaId时更新路由,以及queryParams是否未定义 .
我第一次加载浏览器组件时效果很好 . 但是,如果我在我的应用程序中导航,如果我返回“... /浏览器”,它就不再起作用了 . 我在控制台登录了Promise this.router.navigate(...)的响应并且它是假的,因此路由器不会导航 . 我可以强制查询参数的实现,还是我想要的其他方式?
谢谢,
1 回答
我找到了解决问题的方法 . 我在没有任何查询参数的特殊情况下更新视图,因此如果有“p = N”作为查询参数...它没有回答我在这里问的问题,但它足以满足我的用法 .