在 Angular 7 中获取参数值的不同结果

Getting different results for params value in Angular 7

我一直在接触新的 Angular 版本,在此之前,我曾使用过以下 2 个版本。所以,这对我来说有点新鲜。我正在做一个小项目,我正在处理路由并从参数中获取值并将其传递给函数以从 API 获取结果。我得到了一个奇怪的结果。

我这里有两个例子:

第一个例子

constructor(private router: ActivatedRoute, private movieService: MovieService) { }
this.router.params.subscribe((params) => {
  const id = params['id']; //this works fine
});

第二个例子

constructor(private router: ActivatedRoute, private movieService: MovieService) { }
this.router.params.subscribe((params) => {
  const id = params.id;//this doesn't gives me undefined
});

如果我没记错的话,这两种访问对象键的方法不都是正确的吗?我以前没有注意到这种行为。我错过了什么吗?

首先,请提及您的路由器变量。我认为是activatedRoute。 无论如何,我已经尝试了两种提取参数的方法并且都有效。 或者,您可以使用 ActivatedRouteSnapshot 来提取参数。

这里是使用激活路由快照的代码

    const id = this.activatedRoute.snapshot.paramMap.get('id');

您可以找到更多关于激活路线的信息here