反应原生GeoLocation null引用错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反应原生GeoLocation null引用错误相关的知识,希望对你有一定的参考价值。

我使用以下代码尝试获取当前位置:

componentDidMount() {
    this.watchID = navigator.geolocation.watchPosition((position) => {
        let region = {
            latitude:       position.coords.latitude,
            longitude:      position.coords.longitude,
            latitudeDelta:  0.00922*1.5,
            longitudeDelta: 0.00421*1.5,
            enableHighAccuracy: true
        }
        this.onRegionChange(region, region.latitude, region.longitude);
    });
}

我得到了:

Attempt to invoke interface method 'boolean abi26_0_0.com.facebook.react.bridge.ReadableMap.hasKey(java.lang.String)' on a null object reference

这就是触发这条线:

this.watchID = navigator.geolocation.watchPosition((position) => {

有什么我需要导入这个工作可能吗?我在网上找不到任何关于此的内容。谢谢!

答案

经过几个小时的搜索,我终于把它钉了起来。

如果您正在使用CRNA,就像我一样(create-react-native-app就是您构建应用程序的方式),您需要完成函数调用的所有部分。这些是(成功,错误,选项)。下面的代码是如何实现所有这些部分并删除此错误。

componentDidMount() {
this.watchId = navigator.geolocation.watchPosition(
  (position) => {
    this.setState({
      latitude: position.coords.latitude,
      longitude: position.coords.longitude,
      error: null,
    });
  },
  (error) => this.setState({ error: error.message }),
  { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000, distanceFilter: 10 },
);
}

以上是关于反应原生GeoLocation null引用错误的主要内容,如果未能解决你的问题,请参考以下文章

在反应原生地图中使用 Geolocation.getCurrentPosition 时应用程序崩溃

反应原生 react-native-mauron85-background-geolocation:processReleaseResources FAILED

反应原生 navigator.geolocation.getCurrentPosition 问题

geolib在反应原生状态下未准备好地理位置坐标

反应原生 - `Geolocation.getCurrentPosition` 返回“没有可用的位置提供程序”

如何在反应原生应用程序中使用 Geolocation 获取设备的当前位置