Здравствуйте. Подскажите,пожалуйста.
Ситуация такая: значение из useState сразу прокидывается в ссылку,да,всё верно,но не могу понять до сих пор как можно решить вопрос, чтобы в ссылку передавались значения из
navigator.geolocation.getCurrentPosition
.
Используя в useState null или [], выдает 2 ошибки указывающие на request errror, потом всё подгружается. Уже думаю может использовать
let long = position.coords.latitude;
в navigator, чистую ссылку поставить вместо "url" в axios и туда подставить "long".
Вот код:
function App() {
const [data, setData] = React.useState({});
const [location, setLocation] = React.useState('');
const [lat, setLat] = React.useState(0); // Те самые значения
const [long, setLong] = React.useState(0);
const apiKey = '';
React.useEffect(() => {
const url = `https://api.openweathermap.org/data/2.5/weather?lat=${lat}&lon=${long}&units=metric&appid=${apiKey}`;
const fetchData = async () => {
navigator.geolocation.getCurrentPosition((position) => {
setLat(position.coords.latitude);
setLong(position.coords.longitude);
});
try {
await axios.get(url).then((response) => {
setData(response.data);
});
} catch (error) {
alert('Failed to load resource');
console.error(error);
}
};
fetchData();
}, [lat, long]);