0

我在一个角度组件中有一个方法,其内容是:

this.route.paramMap.pipe(
    switchMap((params: ParamMap) => {       
    let fooValue = params.get('selectedid');
    console.log("inside switch map with value as " + fooValue);
    return fooValue;
  })
)

当我在上面订阅时,这个 Observable 被分配给类型 Observable<string>. Now,如果 selectedid = ABCD,那么我会得到 4 次 next() 方法的调用,每次调用 A、B、C、D。这是什么原因?


这只发生在 switchMap 而不是 map 运算符。

当我使用this.router.navigate(['/mypath', path.id]);和使用 switchmap 时,它不会拆分字符串。它发生在this.router.navigate(['/mypath1', { selectedid: obj.id, foo: "foo" }]);语法上

4

1 回答 1

0

尝试这个

this.route.paramMap.subscribe(params => {
    this.id = params.get("selectedid")
    alert(this.id)
})
于 2019-04-05T19:27:14.057 回答