我试图从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。
当前回答
感谢https://github.com/nagamallabhanu
https://github.com/webmaxru/pwa-workshop-angular/issues/2#issuecomment-395024755
封装
管(地图(…))
工作
import { map } from 'rxjs/operators';
courseRef: AngularFireList<any>;
courses$: Observable<any[]>;
this.courseRef = db.list('/tags');
this.courses$ = this.courseRef.snapshotChanges()
.pipe(map(changes => {
return changes.map(c => ({ key: c.payload.key, ...c.payload.val()
}));
}));
this.courses$.subscribe(res=>{
console.log(res)
})
其他回答
安装rxjs-compat只需在terminal中输入:
npm install --save rxjs-compat
然后导入:
import 'rxjs/Rx';
我也有同样的问题,我使用的是Visual studio 2015,它有一个旧版本的typescript。
升级扩展后,问题得到解决。
下载链接
在最新的Angular 7中。,你可以简单地尝试:
import { Observable, of } from "rxjs";
import { map, catchError } from "rxjs/operators";
然后你可以使用下面这些方法:
private getHtml(): Observable<any> {
return this.http.get("../../assets/test-data/preview.html").pipe(
map((res: any) => res.json()),
catchError(<T>(error: any, result?: T) => {
console.log(error);
return of(result as T);
})
);
}
查看这个演示以获得更多细节。
angular的新版本不支持.map,你必须通过cmd安装 保存rxjs-compat 通过这个你可以享受老技术。 注意: 不要忘记导入这些行。
import { Observable, Subject } from 'rxjs';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
只需运行NPM install—save rxjs-compat即可修复错误。
这里推荐