我通常在routes上通过我的应用程序使用这种方式。
ngOnInit() {
let id = this.route.snapshot.paramMap.get('id');
this.hero$ = this.service.getHero(id);
}
但是在文档上方,我也可以看到基于可观察的方法。
ngOnInit() {
this.hero$ = this.route.paramMap.pipe(
switchMap((params: ParamMap) =>
this.service.getHero(params.get('id')))
);
}
您能告诉我为什么我们需要这种方法吗? Doc说这个
您只能通过此技术获得参数映射的初始值。如果路由器甚至有可能重用该组件,请坚持使用可观察的paramMap方法。
但是我不清楚。您能告诉我为什么我们需要一种基于可观察的方法吗?
这意味着您的方式只会获得param的第一个价值。但是,如果您需要处理参数更改(例如,存储在查询字符串中的过滤器更改),则需要使用第二种方法