我试图从Angular调用一个API,但得到这个错误:
属性“map”在类型“Observable<Response>”上不存在
这个类似问题的答案并没有解决我的问题:Angular 2 beta版。17:属性“map”在类型“Observable<Response>”上不存在。
我使用的是Angular 2.0.0-beta.17。
我试图从Angular调用一个API,但得到这个错误:
属性“map”在类型“Observable<Response>”上不存在
这个类似问题的答案并没有解决我的问题:Angular 2 beta版。17:属性“map”在类型“Observable<Response>”上不存在。
我使用的是Angular 2.0.0-beta.17。
当前回答
首先运行安装,如下所示:
npm install --save rxjs-compat@6
现在你需要在service.ts中导入rxjs:
import 'rxjs/Rx';
瞧!问题已经解决了。
其他回答
安装rxjs-compat只需在terminal中输入:
npm install --save rxjs-compat
然后导入:
import 'rxjs/Rx';
如果在导入import 'rxjs/add/operator/map'或import 'rxjs/Rx'后,你也得到了相同的错误,然后重新启动你的visual studio代码编辑器,错误将被解决。
我有同样的问题,我解决它如下
import { map } from 'rxjs/operators'; // imports statement
return this.auth.user$.pipe(
map(user =>{
if(user) return true;
this.router.navigate(['/login'], { queryParams: {returnUrl :state.url}});
return false;
}));
}
有一个问题,可观察类型是空的,所以我添加类型任何,它有助于清除许多错误
user$: Observable<firebase.User | any>;
在angular的新版本的httpClient模块中,你还没有这样写:
return this.http.request(request)
.map((res: Response) => res.json());
但你可以这样做:
return this.http.request(request)
.pipe(
map((res: any) => res.json())
);
只需运行NPM install—save rxjs-compat即可修复错误。
这里推荐