rxjs - “可观察”类型上不存在属性“过滤器”'。谷歌地图
问题描述
我有一个使用 Ionic Geolocation 和 Firebase Firestore 的出租车预订应用程序。我的代码无法使用 firestore 包,所以我不得不将 rxjs 更新到版本 6。它引发了错误
'Property 'filter' does not exist on type 'Observable<Geoposition>'. '
这是我的代码
import { filter } from 'rxjs/operators';
const subscription = this.geo.watchPosition()
.filter((p) => p.coords !== undefined) //Filter Out Errors
.subscribe(position => {
let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
this.map.setCenter(latLng);
this.lat = position.coords.latitude;
this.long = position.coords.longitude;
console.log(this.long + ' ' + this.lat);
});
我的 package.json 文件
"@ionic-native/core": "~4.15.0",
"@ionic-native/geolocation": "^4.17.0",
"@ionic-native/splash-screen": "~4.15.0",
"@ionic-native/status-bar": "~4.15.0",
"@ionic/storage": "2.2.0",
"angularfire2": "^5.1.0",
"cordova-plugin-geolocation": "^4.0.1",
"firebase": "^5.5.7",
"ionic-angular": "3.9.2",
"ionic-native": "^2.9.0",
"ionicons": "3.0.0",
"rxjs": "^6.3.3",
"rxjs-compat": "^6.3.3",
我的代码有什么问题?
解决方案
感谢@JB Nizet 和@martin 的贡献。我只记得在最新版本的 rxJs 中,当链接过滤器和映射等 txjs 运算符时,您必须使用 .pipe 运算符。这是我更新的代码
const subscription = this.geo.watchPosition()
.pipe(filter((p) => p.coords !== undefined)) //Filter Out Errors
.subscribe(position => {
let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
this.map.setCenter(latLng);
this.lat = position.coords.latitude;
this.long = position.coords.longitude;
console.log(this.long + ' ' + this.lat);
});
推荐阅读
- php - Laravel 查询获取相关数据
- .htaccess - 如何正确地为 rewritecond 创造条件?
- android - Flutter - 如何使用包含表单的可扩展面板构建列表视图?
- javascript - 你如何在组件之外设置状态?
- excel - SQLite循环例程读取excel并将值从一个表分配给另一个
- android - 道具不会传递给 React Native Navigation v2 中的自定义顶部栏标题组件
- angular5 - 导航在角度 5 中不起作用
- json - vue v-for循环不读取json值
- javascript - AdSense 广告未显示在 php 脚本页面中
- unit-testing - 使用 Enzyme + React Native + Jest 测试时常量未定义