我有此错误,我无法弄清楚出了什么问题。我正在使用React Hooks(useState和useEffect)在React本机应用程序中更新用户的当前位置。
import React, {useEffect, useState} from 'react';
import MapView, {PROVIDER_GOOGLE} from 'react-native-maps';
import Geolocation from '@react-native-community/geolocation';
const MapScreen = () => {
const [location, setLocation] = useState({
latitude: 18.9712,
longitude: -72.2852,
latitudeDelta: 0.0922,
longitudeDelta: 0.0421,
});
useEffect(() => {
Geolocation.getCurrentPosition(position => {
const region = {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
}
setLocation({region})
})
}, [])
return (
<MapView
provider={PROVIDER_GOOGLE}
style={{flex: 1}}
showsUserLocation={true}
region={location}
/>
)
}
export default MapScreen
答案 0 :(得分:1)
我认为问题在这里,
setLocation({region})
这里region
是一个对象,因此它成为
setLocation({{
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
}})
这是不正确的setState。
您只需要设置区域,
setLocation(region)