我有这个错误,我不知道出了什么问题。我使用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
我认为问题就在这里,
setLocation({region})
这里region
是一个对象,所以它变成
setLocation({{
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.001,
longitudeDelta: 0.001,
}})
这是不正确的setState
你只需要设置区域,
setLocation(region)