我在Angular 6中有以下代码:
import { Component, OnInit } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
...
export class someComponent implements OnInit {
life: string;
constructor(
private route: ActivatedRoute
) {}
ngOnInit(): void {
this.route.queryParamMap.subscribe(urlParams => this.life = urlParams.get('foo'));
}
...
}
我已经从ActivatedRoute实例化了route
,我的目标是将来自URL的查询参数foo
分配给我的一个名为life
的变量。
但是,我在WebStorm上收到以下警告(绿色卷曲线,所以我不确定它们是警告,错误还是其他):
subscribe
上时,我得到Promise returned from subscribe is ignored
,urlParams
上时,我得到Argument type (urlParams: any) => void is not assignable to parameter type PushSubscriptionOptionsInit | undefined
答案 0 :(得分:0)
在Angular中(当前在Angular-6中)。subscribe()是Observable类型的方法。 Observable类型是一种实用程序,可以异步或同步地将数据流传输到已订阅了Observable的各种组件或服务。
this._route.paramMap.pipe(
switchMap((params: ParamMap) => {
this.FID = params.get('id');
return this._serviceXXX();
}
)
).subscribe(data => {
// then code
});
答案 1 :(得分:0)
安装所有模块(npm i)并刷新WebStorm索引(在node_modules上执行同步命令)后,我遇到了同样的问题。