TypeError: undefined is not an object( evaluating 'navigator.geolocation.getCurrentPosition') in react-native-google-places-autocomplete

TypeError: undefined is not an object( evaluating 'navigator.geolocation.getCurrentPosition') in react-native-google-places-autocomplete

我正在尝试将 react-native-google-places-autocomplete 用于 google 个位置,同时我希望用户 当前位置也。

但是我收到一个名为

的错误

TypeError: undefined is not an object( evaluating 'navigator.geolocation.getCurrentPosition')

我已经通过网络搜索解决方案,每个人都说 navigator.geolocation.getCurrentPosition 工作正常。

但不知道为什么它对我不起作用..

这是我的代码

componentDidMount() {
navigator.geolocation.getCurrentPosition(
  position => {
    const initialPosition = JSON.stringify(position);
    let region = {
        latitude: position.coords.latitude,
        longitude: position.coords.longitude,
        latitudeDelta: 0.0922,
        longitudeDelta: 0.0421,
        }
    this.setState({initialPosition:region});
    console.log("lat "+position.coords.latitude+" longi "+position.coords.longitude)
    console.log("initialPosition")
    console.log(this.state.initialPosition)
  },
   error => console.log("Error "+ JSON.stringify(error)),
  {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000},
);
this.watchID = Geolocation.watchPosition(position => {
  const lastPosition = JSON.stringify(position);
  this.setState({lastPosition});
});

}

我已经经历了 @react-native-community/geolocation 我在这里找到了解决方案。我已经完成了以下步骤。 1.通过

安装@react-native-community/geolocation
npm install @react-native-community/geolocation --save
  1. 在 react-native-google-places-autocomplete

    的侧节点模块中的 GooglePlacesAutocompleteExample.js 文件中的 class 上方添加以下行

    navigator.geolocation = require('@react-native-community/geolocation'); 完成它的工作..

参考react-native documentation, 从react-native 0.58开始,react-native团队建议使用@react-native-community/geolocation。并且在 react-native 0.58 之前用于地理定位的 API 被弃用。

  1. npm install @react-native-community/geolocation --save
  2. import Geolocation from '@react-native-community/geolocation';
  3. 而不是 navigator.geolocation.getCurrentPosition 使用 Geolocation.getCurrentPosition