基于Observable的paramMap方法的用例

问题描述 投票:0回答:1

我通常在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方法。

但是我不清楚。您能告诉我为什么我们需要一种基于可观察的方法吗?

angular typescript angular-router
1个回答
0
投票

这意味着您的方式只会获得param的第一个价值。但是,如果您需要处理参数更改(例如,存储在查询字符串中的过滤器更改),则需要使用第二种方法

© www.soinside.com 2019 - 2024. All rights reserved.