React Native 地理定位 API 中的 getCurrentPosition 只运行了 10% 的时间?

Posted

技术标签:

【中文标题】React Native 地理定位 API 中的 getCurrentPosition 只运行了 10% 的时间?【英文标题】:getCurrentPosition in the React Native geolocation API is only running 10% of the time? 【发布时间】:2017-12-18 04:04:30 【问题描述】:

我在 componentDidMount 中运行 React Native getCurrentPosition Geolocation 函数,如下所示:

async componentDidMount()
    alert('comp mounting');
    await navigator.geolocation.getCurrentPosition(
      (position) => 
        alert("state of lat in callback is "+position.coords.latitude);
        this.setState(lat: position.coords.latitude, long: position.coords.longitude);

      ,

      (error) => alert("there was an error getting location"),

      enableHighAccuracy: true

      );
  

它在我第一次运行时提醒了纬度,在大约 40 次尝试中可能还有其他几次。我认为所有这些运行都没有asyncawait。大约 90% 的时间,成功回调中的警报和错误回调中的警报都不会运行。

我将 async 和 await 放入,因为我认为请求花费的时间太长(虽然第一次立即运行)。

我需要将位置信息传递给子组件。

是 React Native 默认的 Geolocation 库不是很好还是我做错了什么?我应该切换到使用单独的 ios/android 地理位置选项吗?

【问题讨论】:

【参考方案1】:

alert() 调用似乎是问题所在。一旦我删除了 alert() 调用,它就开始工作了。

【讨论】:

以上是关于React Native 地理定位 API 中的 getCurrentPosition 只运行了 10% 的时间?的主要内容,如果未能解决你的问题,请参考以下文章

错误回调不适用于 React Native 中的地理位置

react-native-mauron85-background 地理定位错误

React-native 地理定位

React Native:如何检查是不是已授予地理定位权限

我无法在带有 redux 的 react-native 中使用地理定位

在 React Native 出错后重试地理定位