得到错误,同时试图使用paramMap用于获取路由参数

问题描述:

export class HeroDetailComponent { 
    heroes; 
    constructor(private route: ActivatedRoute, private router: Router, private hs : HeroService){ 
    } 
    ngOnInit(){ 
     this.route.paramMap 
      .switchMap((params : ParamMap) => 
       this.hs.getHeroes(params.get('id'))) 
      .subscribe((heroes) => { 
       console.log("checking for heroes n subscribe",heroes); 
       this.heroes = heroes})   
    } 

} 

获得以下错误得到错误,同时试图使用paramMap用于获取路由参数

paramMap的类型不存在“ActivatedRoute”

在你switchmap paramMap类型是错误的。

应该

.switchMap((params : ParamMap) => 
+0

正确的,但我得到这个错误this.route.paramMap – praveen

+0

你有没有改变,仍然出现错误? – Skeptor

+0

是的..我确实改变了,并得到相同的错误 – praveen

也不太清楚这是否会帮助,但你可能要尝试以下操作:

  1. 删除node_modules文件夹中的项目
  2. 在你的package.json文件,请检查您的@ angular/router依赖项是否为角度4版本(即4.0.0及更高版本)
  3. 请确保您的打字稿版本在“依赖关系”中至少为2.1.6和你的package.json中的“devDependencies”(一些版本的打字稿和打破rxjs。我不太确定哪个版本和最新的版本。为安全起见,你可能只想更新rxjs到最新版本,以及)
  4. 终于NPM安装

希望这对你的作品。我有同样的问题,如果我从来没有记错,我做了上述和ParamMap之后存在。

import 'rxjs/add/operator/switchMap';

是进口添加到您的组件......

确保您从@

import { Router, ActivatedRoute, ParamMap } from '@angular/router'; 

ParamMap已在4.0.0-被引入角/路由器进口ParamMap rc.6版本。确保你至少有Angular 4版本。