@StepanSnigur

Как реализовать работу с fetch в React?

Здравствуйте. Я сделал приложение погоды, работающее с api. Меня интересует вопрос: как передать результат работы fetch в само приложение, чтобы результат можно было вывести на экран? Я вызвал класс, который возвращает промис, и в этой-же функции запушил значения в state. Правильно ли я сделал, или можно как-то по другому?
Вот кусок кода app.js:
state = {           //initial state
    weatherForecast: {
      main: {},
      wind: {},
      weather: {
        0: []
      }
    },
    isLoading: true,
    error: false
  }

  async getForecast (city) {
    let response = await new WeatherService().getWeather(city);   //get data from fetch
    this.setState({       //push fetch data to state
      weatherForecast: response,
      isLoading: false
    });
  }
  • Вопрос задан
  • 141 просмотр
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
В целом все правильно. Но можно и по-другому, например, использовать redux и делать запросы в его middleware.

Нет никакого смысла каждый раз создавать новый сервис(new WeatherService). Можно создавать один экземпляр при инициализации. А вообще нет особого смысла описывать его в виде класса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы