[英]How to export const from main component
我需要將我的數據常量導出到另一個文件。 如果它是異步的,我怎么能這樣做?(因為它,我無法將它從 getWeather 中取出並使其成為全局)。
這是代碼:
getWeather = async (event) => {
event.preventDefault();
var city = event.target.elements.city.value;
if (city) {
const api_url = await fetch(`https://api.openweathermap.org/data/2.5/forecast?q=${city}&appid=${API_KEY}&units=metric`);
const data = await api_url.json();
var sunset = data.city.sunset;
var date = new Date();
date.setTime(sunset);
var sunset_time = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
this.setState({
temp: data.list[0].main.temp,
city: data.city.name,
country: data.city.country,
pressure: data.list[0].main.pressure,
sunset: sunset_time,
error: undefined,
latitude: data.city.coord.lat,
longitude: data.city.coord.lon
});
} else {
this.setState({
temp: undefined,
city: undefined,
country: undefined,
pressure: undefined,
sunset: undefined,
error: 'Please enter the city',
latitude: undefined,
longitude: undefined
})
}
}
您可以像這樣在頁面頂部創建一個變量; 讓數據; 然后當您的請求完成時,為您的變量 datas = blas 設置新值;
let datas;
getWeather = async (event) => {
event.preventDefault();
var city = event.target.elements.city.value;
if(city){
const api_url = await
fetch(`https://api.openweathermap.org/data/2.5/forecast?q=${city}&appid=${API_KEY}&units=metric`);
const data = await api_url.json();
console.log(data)
datas = data;
var sunset = data.city.sunset;
var date = new Date();
date.setTime(sunset);
var sunset_time = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
this.setState({
temp: data.list[0].main.temp,
city: data.city.name,
country: data.city.country,
pressure: data.list[0].main.pressure,
sunset: sunset_time,
error: undefined,
latitude: data.city.coord.lat,
longitude: data.city.coord.lon
});
} else {
this.setState({
temp: undefined,
city: undefined,
country: undefined,
pressure: undefined,
sunset: undefined,
error: 'Please enter the city',
latitude: undefined,
longitude: undefined
})
}
export datas;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.