我试图从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。
当前回答
安装rxjs-compat只需在terminal中输入:
npm install --save rxjs-compat
然后导入:
import 'rxjs/Rx';
其他回答
使用管道函数中的map函数,它将解决您的问题。 您可以在这里查看文档。
this.items = this.afs.collection('blalal').snapshotChanges().pipe(map(changes => {
return changes.map(a => {
const data = a.payload.doc.data() as Items;
data.id = a.payload.doc.id;
return data;
})
})
首先运行安装,如下所示:
npm install --save rxjs-compat@6
现在你需要在service.ts中导入rxjs:
import 'rxjs/Rx';
瞧!问题已经解决了。
在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
我试了上面所有可能的答案,没有一个成功,
我通过简单地重新启动我的IDE,即Visual Studio Code来解决它
希望它能帮助到别人。
只需安装rxjs-compat就可以解决这个问题
npm i rxjs-compat --save-dev
然后像下面这样导入它
import 'rxjs/Rx';