在设备中:更新视图管理器的属性“坐标"时出错:航空Map标记
在控制台终端中:错误警告:失败的道具类型:属性coordinate.latitude
在MapMarker
中标记为必需,但其值为null
。
我代码:
从“react”导入{使用上下文,使用效果,使用状态}
从“../../global/Context”导入上下文
从“react-native-maps”导入Map视图{标记}
从'expo-location'导入 * 作为位置
从“react-native”导入{视图、样式表、图像背景、尺寸、文本、可触摸不透明度}
位置=(道具)=〉{
const [位置,设置位置] =使用状态(null)
const [错误消息,设置错误消息] =使用状态(空)
const {状态} = useContext(上下文)
网站地址states.place
useEffect(()=>{
(async()=>{
let { status } = await Position.requestBackgroundPermissionsAsync()
if(status !== 'granted'){
setErrorMsg('App não tem permissão para acessar localizaçõa')
}
let location = await Position.getCurrentPositionAsync()
setLocation(location)
})()
}, [])
let text = 'Carregando...'
if(errorMsg){
text = errorMsg
}else if(location){
text = JSON.stringify(location)
}
return(
<ImageBackground
style={{flex:1}}
source={require('../../img/mypoint-wallpaper.jpg')}>
<View style={styles.container}>
<MapView style={{
width: Dimensions.get('window').width,
height: Dimensions.get('window').height
}}
initialRegion={{
latitude: place.latitude,
longitude: place.longitude,
longitudeDelta: 0.01,
latitudeDelta: 0.01
}}>
<Marker
coordinate={{
latitude: place.latitude,
longitude: place.longitude
}}/>
<Marker
title="Sua localização"
coordinate={{
latitude: location && location.coords.latitude,
longitude: location && location.coords.longitude
}}/>
</MapView>
<Text style={styles.txtStyle}>{text}</Text>
</View>
</ImageBackground>
)
}
1条答案
按热度按时间yhxst69z1#
要绘制一个标记,经度和纬度是必须的,也是必需的属性。您的纬度和经度在这里为空
因此,只有当你有坐标时才画标记,使用类似这样的东西:-