我现在已经尝试了几个小时来让geolocation.watchPosition()实际触发超出最初的第一个componentDidMount()触发器。我已经阅读了我能找到的所有指南,就我所知,我正在做人们建议的所有事情。
以下是代码:
componentDidMount() {
this.watchId = navigator.geolocation.watchPosition(
(position) => {
let region = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.02500,
longitudeDelta: 0.01000,
enableHighAccuracy: true
}
this.state.currentLatitude = region.latitude;
this.state.currentLongitude = region.longitude;
console.log("WatchPosition Triggered");
this.onRegionChangeComplete(region, region.latitude, region.longitude);
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: true, timeout: 5000, maximumAge: 4000, distanceFilter: 1, useSignificantChanges: false },
);
}
onRegionChangeComplete(region, lastLat, lastLong) {
this.setState({
mapRegion: region,
lastLat: lastLat || this.state.lastLat,
lastLong: lastLong || this.state.lastLong
});
}
我有那个console.log,所以每次这个功能在应用程序中实际触发时我都可以看到,它只是超出了地图屏幕加载的第一个实例。我试过四处走动,确认我的位置跟踪完美,但这个功能永远不会再次触发。
我错过了什么吗?我无法在任何例子中找到任何不同的东西。
如果可以,请帮助我,我正在倾注这个问题。