我试图从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 5.2,当我使用import 'rxjs/Rx';它抛出我以下lint错误: TSLint:此导入被列入黑名单,改为导入子模块(import-blacklist)
请看下面的截图:
解决方案: 通过只导入我需要的操作符解决了这个问题。例子如下:
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
因此,解决办法是只导入必要的操作符。
其他回答
只需安装rxjs-compat就可以解决这个问题
npm i rxjs-compat --save-dev
然后像下面这样导入它
import 'rxjs/Rx';
我有同样的问题,我解决它如下
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>;
使用管道函数中的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安装rxjs@6 rxjs-compat@6—保存
对于Angular 7v
改变
import 'rxjs/add/operator/map';
To
import { map } from "rxjs/operators";
And
return this.http.get('http://localhost/ionicapis/public/api/products')
.pipe(map(res => res.json()));