angular4 中子页面如何获取父页面中通过routerLink传过来的参数

父组件(页面)上通过routerLink跳到子页面(通过下拉列表切换不同的子页面),但是在子页面上需要接收父页面上传的参数(动态参数),一直获取不了,报错也解决不了,接触angular不久,是在解决不了,求大佬们指导,非常感谢!!!
图片描述

代码如下:
父组件(父页面)中的切换路由,_value 就是所选择的试题分类
<ul class="dropdown-menu" aria-labelledby="dropdownMenu2">

<li><a [routerLink]="['/manager/exam-manage/manage-type-choice',_value]">选择题</a></li>
<li role="separator" class="divider"></li>
<li><a [routerLink]="['/manager/exam-manage/manage-type-completion',_value]">填空题</a></li>
<li role="separator" class="divider"></li>
<li><a [routerLink]="['/manager/exam-manage/manage-type-answer',_value]">解答题</a></li>

</ul>
看教程子页面的ts文件中这样写的:
ngOnInit() {
this.type = this.router.paramMap.switchMap((params: ParamMap) => {

     console.log(params);

});
}
但是一直报错:
报错信息:Argument of type '(params: ParamMap) => void' is not assignable to parameter of type '(value: ParamMap, index: number) => ObservableInput<{}>'.
Type 'void' is not assignable to type 'ObservableInput<{}>'.

这是子页面的URL:
clipboard.png

后面 “css“ 和 ”选择器” 就是想要获取到的值。

阅读 3.5k
2 个回答
export class ProductDetailComponent implements OnInit {
  private data: object;
  constructor(private routeInfo: ActivatedRoute) {}
  ngOnInit() {
    this.routeInfo.queryParams.subscribe(params => {
      this.data = params;
    })
    console.log(this.data);
  }
}

试试这个。不行再问我,可以参考我的笔记https://segmentfault.com/n/13...

不知道你子路由是怎么配置的?你有没有像图片一样配置路径中的:id令牌用来接收你的值呢?
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题