react-native - 如何解决:Undefined Promise Rejection (id:0) type error with user location map?
问题描述
这是 我尝试使用 react-native-maps 和导入权限的错误,来自 expo-permissions + expo-location 的位置我是否必须捕获错误以及如何做?我也在使用我的真实设备
这是代码
import React from 'react';
import {
View,
Text,
StyleSheet,
PermissionsAndroid,
} from 'react-native'
import MapView from 'react-native-maps';
import {Permissions} from 'expo-permissions';
import {Location} from 'expo-location'
class MapViewScreen extends React.Component {
constructor(props){
super(props);
this.state={
region:{
latitude: 37.78825,
longitude: -122.4324,
latitudeDelta: 0.922,
longitudeDelta: 0.0421,
}
}
this._requestUserLocationPermission();
}
_requestUserLocationPermission = async () => {
const { status } = await Permissions.askAsync(Permissions.LOCATION);
if(status !== 'granted'){
alert('Please enable your location!')
}
let location = await Location.getCurrentPositionAsunc({enabledHighAccuracy: true})
let region = {
latitude: location.coords.latitude,
longitude: location.coords.longitude,
latitudeDelta: 0.045,
longitudeDelta: 0.045
}
}
render(){
return(
<View style={styles.container}>
<MapView
initialRegion={this.state.region}
showsCompass={true}
showsUserLocation={true}
rotateEnabled={false}
style={{flex: 1}}
/>
</View>
);
}
}
export default MapViewScreen;
const styles = StyleSheet.create({
container:{
flex: 1,
backgroundColor: '#fff',
}
})
解决方案
我已经成功解决了这个问题。通过在 react-native-maps 中更改initialRegion
为region
prop,屏幕现在可以在我进入地图屏幕后立即显示我的设备位置。感谢你的帮助
推荐阅读
- unreal-engine4 - 我应该使用什么来代替“获取玩家控制器”来制作多人游戏(Top Down Game Unreal Engine)
- php - 从 .htaccess 重定向中删除所有参数/查询字符串
- javascript - 为什么 vuejs mustache 语法不起作用?
- android - 如何在片段中为计时器启动新线程
- java - 使用 Comparator 会破坏对象的“唯一性”?
- javascript - Dropzone processQueue 永远不会完成 AWS 上传 + 大量文件 (>10)
- python - argmax 聚合并在 altair 中选择 n 个最大值
- r - 如何用来自另一个数据框的列注释列
- c - 如何访问结构中不是第一个的元素 - Qsort
- c++ - 无法更改 OpenCV 视频捕获分辨率