Извинения за то, что это дубликат, я читал похожие темы, но не могу обдумать проблему, так что, надеюсь, кто-нибудь может указать мне правильное направление.
Я пытаюсь использовать API геолокации, чтобы назначить пользователям широту, долготу и метку времени для глобальной переменной (координирующий объект).Я определил функцию и могу выводить результат из консоли (из функции в обратном вызове success), но не могу присвоить ее переменной (возвращает неопределенное значение).
В файле утилит:
const getLocation = () => {
var options = {
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
};
function success(pos) {
const coords = {
lat: pos.coords.latitude,
long: pos.coords.longitude,
time: pos.timestamp
}
return coords;
}
function error(err) {
console.warn(`ERROR(${err.code}): ${err.message}`);
}
if ("geolocation" in navigator) {
return (navigator.geolocation.getCurrentPosition(success, error,
options));
} else {
return console.log('geolocation must be enabled')
}};
export default getLocation;
Назад в App.js:
import React, { Component } from 'react';
import Header from './components/Header';
import Footer from './components/Footer';
import Weather from './components/Weather';
import getLocation from './services/getLocation';
//import getWeather from './services/getWeather';
class App extends Component {
render() {
return (
<div>
<Header />
<Weather />
<Footer />
</div>
);
}
}
console.log(getLocation())
export default App;
Я подозреваю, что это проблема с областью видимости, но, похоже, я не могу обернуть ееголова вокруг этого.Если бы кто-нибудь мог предложить какой-то совет, это было бы замечательно, спасибо.