我试图从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。
当前回答
我在Angular 2.0.1中也遇到了同样的问题,因为我从
import { Observable } from 'rxjs/Observable';
我解决了从这个路径导入Observable的问题
import { Observable } from 'rxjs';
其他回答
再次讨论这个问题,因为我的解决方案没有列在这里。
我正在用rxjs 6.0运行Angular 6,遇到了这个错误。
下面是我解决问题的方法:
我改变了
map((response: any) => response.json())
简单地成为:
.pipe(map((response: any) => response.json()));
我在这里找到了解决方法:
https://github.com/angular/angular/issues/15548#issuecomment-387009186
在rxjs 6中,map操作符的用法已经改变 现在你需要像这样使用它。
import { map } from 'rxjs/operators';
myObservable
.pipe(map(data => data * 2))
.subscribe(...);
供参考 https://www.academind.com/learn/javascript/rxjs-6-what-changed/#operators-update-path
我使用的是Angular 5.2,当我使用import 'rxjs/Rx';它抛出我以下lint错误: TSLint:此导入被列入黑名单,改为导入子模块(import-blacklist)
请看下面的截图:
解决方案: 通过只导入我需要的操作符解决了这个问题。例子如下:
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
因此,解决办法是只导入必要的操作符。
我也有同样的问题,我使用的是Visual studio 2015,它有一个旧版本的typescript。
升级扩展后,问题得到解决。
下载链接
我在Angular 2.0.1中也遇到了同样的问题,因为我从
import { Observable } from 'rxjs/Observable';
我解决了从这个路径导入Observable的问题
import { Observable } from 'rxjs';