尝试使用paramMap获取路由参数时出错

时间:2017-07-07 15:05:31

标签: angular

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不存在于类型' ActivatedRoute'

5 个答案:

答案 0 :(得分:1)

import 'rxjs/add/operator/switchMap';

将该导入添加到您的组件...

答案 1 :(得分:0)

在你的switchmap paramMap中输入错误。

应该是

.switchMap((params : ParamMap) => 

答案 2 :(得分:0)

不太确定这是否会有所帮助,但您可能想尝试以下操作:

  1. 删除项目中的node_modules文件夹
  2. 在你的package.json文件中
  3. ,检查你的@ angular / router依赖是否是角度4版本(即4.0.0及以上)
  4. 确保您的打字稿版本在"依赖关系"中至少为2.1.6。和" devDependencies"在你的package.json中(一些版本的typescript和up break rxjs。我不太确定在哪个版本及以上版本。为了安全起见,你可能只想将你的rxjs更新到最新版本())
  5. 最后是npm install
  6. 希望这适合你。我有同样的问题,如果我从来没有错误地记得,我做了上面的事情,ParamMap存在之后。

答案 3 :(得分:0)

确保您从@ angular / router

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

答案 4 :(得分:0)

ParamMap已在4.0.0-rc.6版本中引入。确保你至少有Angular 4版本。