Я знаю, что этот ответ немного запоздал, но в случае, если кто-то столкнется с ним, я сделал следующее:
Добавлено свойство региона для указания:
state = {
location: null,
region: null,
errorMessage: null,
};
В getLocations я перевел объект местоположения, возвращенный из вызова getCurrentPositionAsync (), в регион:
getLocationAsync = async () => {
let { status } = await Permissions.askAsync(Permissions.LOCATION);
if (status !== 'granted') {
this.setState({
errorMessage: 'Permission to access location was denied',
});
}
let location = await Location.getCurrentPositionAsync({});
const region = {
latitude: location.coords.latitude,
longitude: location.coords.longitude,
latitudeDelta: 1.0,
longitudeDelta: 1.0
}
this.setState({ location, region });
};
И, наконец, в методе рендеринга я использовал свойство region для состояния, чтобы установить регион в просмотре карты:
render() {
return (
<MapView
initialRegion={this.state.region}
/>
);
}
После завершения асинхронного вызова для определения местоположения карта переходит на текущее местоположение.