我正在尝试在Android React Native应用程序中获取用户的位置。我开始关注React Native Geolocation Tutorial,但没有运气。
我已向Android项目添加了相应的权限,并将此代码插入react native app:
componentDidMount() {
navigator.geolocation.getCurrentPosition(
(position) => {
var initialPosition = JSON.stringify(position);
this.setState({initialPosition});
},
(error) => alert(error.message),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
console.log("Initial position: " + this.state.initialPosition)
}
我也将initialPosition
变量定义为'unknown',就像在教程中一样。示例运行时,initialPosition
变量打印未知。然后大约5秒钟后,警报显示“未定义”错误。
我对发生的事情感到有点困惑,因为错误是空的。也许我错误地实例化了“地理定位”?不幸的是,我无法通过搜索找到关于此的更多信息,所以任何帮助都表示赞赏。
答案 0 :(得分:2)
希望这有点帮助:
initialPosition
。这意味着initialPosition
将是未知的,因为回调尚未运行,因此initialPosition
变量尚未更新。error
变量,而不仅仅是警告error.message
。可能存在error
,但不是error.message
。答案 1 :(得分:0)
- 尝试此代码它可能会帮助您将this.state中的构造函数中的纬度和经度变量定义为null。
- 如果你想打印json字符串然后在状态中定义一个数组然后通过设置this.setState数组来使用
醇>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
- componentDidMount(){
navigator.geolocation.getCurrentPosition( (position)=>{
//const ipos = JSON.stringify(Position);
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
});
},
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
}
{{1}}