如何在初始化页面之前以及在flutter中运行initstate方法之前如何初始化静态变量

时间:2019-08-07 19:00:01

标签: flutter dart

我想从Web服务中获取数据并用获取的数据填充变量,但是在运行我的await方法之前,请运行init状态方法,并且我的变量在新页面中获取空值如何解决它。我在super.init状态方法之前运行此方法,但是不起作用

1 个答案:

答案 0 :(得分:0)

您应该在有状态的小部件内创建一个函数,该函数执行要完成的操作并在InitState函数内调用它。

这是我的Clima应用程序中的一个示例,在该示例中,我从API提取数据并将其放入一些变量中:

//This is an example

@override
  void initState() {
    super.initState();
    updateUI(widget.locationWeather);
  }

  void updateUI(dynamic weatherData) {
    setState(() {
      if (weatherData == null) {
        temperature = 0;
        condition = 'Error';
        message = 'Unable to get location';
        cityName = '';
        return;
      }
      double temp = weatherData['main']['temp'];
      temperature = temp.toInt();
      condition = weatherModel.getWeatherIcon(weatherData['weather'][0]['id']);
      cityName = weatherData['name'];
      message = weatherModel.getMessage(temperature);
    });
  }