我花了至少 2 个小时试图让事情与版本 6 一起工作,但无济于事。我只是无法同时获得路由参数和查询参数。
这是与旧版本最接近的语法,但它只记录查询参数。
我想要做的是将其包装在全局路由服务中,以便方法调用是干净的,如果发生任何其他更新,我可以在一个地方进行更改。
import {BehaviorSubject, combineLatest, Observable} from 'rxjs';
constructor(private router: Router, private route: ActivatedRoute)
// body of constructor left out
// Combine them both into a single observable
const urlParams: Observable<any> = combineLatest(
this.route.params,
this.route.queryParams,
(params, queryParams) => ({ ...params, ...queryParams})
);
urlParams.subscribe(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)
我还注意到,由于某种原因,combinedLatest 不在“rxjs/operators”中。Observable.combineLatest 也不起作用。
谢谢。
使用 rxjs6 没有更多的结果选择器,所以你需要使用 'map' 代替。关于迁移rxjs 迁移指南的文档
import {BehaviorSubject, combineLatest, Observable} from 'rxjs';
import {map} from 'rxjs/operators'
const urlParams: Observable<any> = combineLatest(
this.route.params,
this.route.queryParams
).pipe(
map(([params, queryParams]) => ({...params, ...queryParams}))
);
urlParams.subscribe(x => console.log(x));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4133 次 |
| 最近记录: |