Я занимаюсь разработкой приложения для погоды, используя API openweathermap, я успешно все реализовал, теперь я хочу использовать Apploading с выставки
чтобы получить результаты от API, поэтому, когда открывается главный экран, все данные извлекаются и отображаются на экране вместо ожидания ответа от API,
weatherAPI.js:
const rootUrl = 'http://api.openweathermap.org/data/2.5/weather?appid=API_KEY'
export const fetchWeather = (lat,lon) => {
const url = rootUrl+'&lat='+lat+"&lon="+lon+"&units=metric"
console.log(url)
return fetch(url)
.then(res => res.json())
.then(json => ({
temp: json.main.temp,
pressure: json.main.pressure,
humidity: json.main.humidity,
maxTemp: json.main.temp_max,
minTemp: json.main.temp_min,
weather: json.weather[0].main,
weatherDescription: json.weather[0].description,
name: json.name,
country: json.sys.country,
windSpeed: json.wind.speed,
windDeg: json.wind.deg,
clouds: json.clouds.all,
sunrise: json.sys.sunrise,
sunset: json.sys.sunset,
}))
}
Home.js:
componentDidMount(){
this._getData()
}
_getData(){
navigator.geolocation.getCurrentPosition(
(posData) => fetchWeather(posData.coords.latitude, posData.coords.longitude)
.then(res => this.setState({
temp: Math.round(res.temp),
weather: res.weather,
weatherDescription: res.weatherDescription,
name: res.name,
country: res.country,
})),
(error)=> alert(error),
{timeout:10000}
)
}
Также и, возможно, это очень простой вопрос:
Я хочу создать значок загрузки, чтобы перезагрузить данные? мой подход к этому решению был touchableOpacity с вызовом onPress this_getData (), но я чувствую, что это неправильное кодирование?