Задать вопрос
  • Почему в компоненте не обновляется стейт?

    0xD34F
    @0xD34F Куратор тега React
    let data = {};
    
    await fetch(url).then((res) => res.json()).then(json => {
        data = { temperature: json.main.temp }
    })
    return data;

    Это что за дичь? Пусть будет return fetch(url).then(r => r.json());.

    this.setState(() => {
        return { weather: this.askForWeather.getNeededData() }
    });

    Засовываете промис в стейт. Что-то сомневаюсь, что так и было задумано. Меняйте на

    this.askForWeather.getNeededData().then(weather => {
      this.setState(() => ({ weather }));
    });

    <Main temperature={this.state.weather.temperature}/>

    Пока weather имеет значение null, попытки прочитать свойства будут приводить к ошибке. Так что

    {this.state.weather && <Main temperature={this.state.weather.main.temp} />}
    Ответ написан
    Комментировать