Я пытаюсь создать общую функцию, которая возвращает геолокацию и может быть доступна другим компонентам в JavaScript. Я создал функцию, но она не возвращает никаких данных, когда я вызываю метод из другого компонента.
// In CommonMethod.js
export const getLocationData = async () => {
navigator.geolocation.getCurrentPosition(
success => {
console.log("SUCCESS", success);
return success;
},
error => {
console.log("ERROR", error);
return error;
}
);
};
//In Location.js
import React, { Component } from "react";
import { getLocationData } from "./CommonMethod";
export default class Location extends Component {
constructor(props) {
super(props);
this.state = {
location: []
};
}
async componentDidMount() {
var locationData;
console.log("CALLING GEOLOCATION START");
locationData = await getLocationData();
console.log("CALLING GEOLOCATION START", locationData);
if (locationData) {
this.setState({
location:
locationData.coords.latitude + "," + locationData.coords.longitude
});
} else {
this.setState({
location: "User denied Geolocation"
});
}
console.log("CALLING GEOLOCATION AFTER 5 SEC", locationData);
}
render() {
return (
<div>
<h1> {this.state.location}</h1>
</div>
);
}
}