我想从Web服务中获取数据并用获取的数据填充变量,但是在运行我的await方法之前,请运行init状态方法,并且我的变量在新页面中获取空值如何解决它。我在super.init状态方法之前运行此方法,但是不起作用
答案 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);
});
}