TypeError: undefined is not an object( evaluating 'navigator.geolocation.getCurrentPosition') in react-native-google-places-autocomplete
Solution 1
i have been through @react-native-community/geolocation and i found solution here. i have done the following steps. 1. install @react-native-community/geolocation via
npm install @react-native-community/geolocation --save
-
add the following line above the class in GooglePlacesAutocompleteExample.js file in side nodemodules of react-native-google-places-autocomplete
navigator.geolocation = require('@react-native-community/geolocation');
finish it works..
Solution 2
npm install @react-native-community/geolocation --save
import Geolocation from '@react-native-community/geolocation';
- Instead of
navigator.geolocation.getCurrentPosition
useGeolocation.getCurrentPosition
Solution 3
With reference to react-native documentation, starting from react-native 0.58, react-native team suggests to use @react-native-community/geolocation. And the API for geolocation before react-native 0.58 is deprecated.
keshava
Updated on June 06, 2022Comments
-
keshava almost 2 years
I am trying to use react-native-google-places-autocomplete for google places and at the sametime I want user current position also.
But im getting an error called as
TypeError: undefined is not an object( evaluating 'navigator.geolocation.getCurrentPosition')
i have gone through net searching for solutions everyone saying navigator.geolocation.getCurrentPosition works fine.
but dont know why it is not working for me..
Here is my code
componentDidMount() { navigator.geolocation.getCurrentPosition( position => { const initialPosition = JSON.stringify(position); let region = { latitude: position.coords.latitude, longitude: position.coords.longitude, latitudeDelta: 0.0922, longitudeDelta: 0.0421, } this.setState({initialPosition:region}); console.log("lat "+position.coords.latitude+" longi "+position.coords.longitude) console.log("initialPosition") console.log(this.state.initialPosition) }, error => console.log("Error "+ JSON.stringify(error)), {enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}, ); this.watchID = Geolocation.watchPosition(position => { const lastPosition = JSON.stringify(position); this.setState({lastPosition}); });
}