Я новичок в React Native. Я пытаюсь получить геолокацию пользователя, когда пользователь нажимает кнопку. Код как ниже:
import React, { Component } from 'react';
import { StyleSheet, Text, View, TextInput, Button } from 'react-native';
class TestScreen extends Component {
constructor(props) {
super(props);
this.state = {
latitude: null,
longitude: null,
error: null,
};
}
getLocation() {
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null,
});
},
(error) => this.setState({ error: error.message }),
{ enableHighAccuracy: true, timeout: 20000},
);
}
render() {
return (
<View style={{ flexGrow: 1, alignItems: 'center', justifyContent: 'center' }}>
<Button onPress={this.getLocation()} title="Get Location"/>
<Text>Latitude: {this.state.latitude}</Text>
<Text>Longitude: {this.state.longitude}</Text>
{this.state.error ? <Text>Error: {this.state.error}</Text> : null}
</View>
);
}
}
export default TestScreen;
Когда экран загружен, геолокация немедленно выводится на экран. Я бы хотел, чтобы пользователь мог нажать кнопку и только после этого выводить геолокацию. Во-вторых, я видел много реализаций использования геолокации componentDidMount, нужно ли мне использовать это в этом сценарии?
Спасибо