【发布时间】:2020-03-20 20:12:00
【问题描述】:
我有一个异步函数,需要在有状态小部件的 initState 中调用,但我不能使用 await,因为 initState 不是异步的。
sendHealthData 是async,因为它从 Health Api 获取一些信息,然后我需要将该信息发送到另一个 StatefulWidget 的 HomeSubScreen。但是在创建 HomeSubScreen 时,sendHealthData 方法并没有获取所有信息,所以如果我尝试将参数中的一些值发送到 HomeSubScreen,则该值将为 null。
我该怎么做?
@override
void initState() {
super.initState();
sendHealthData();
_widgetOptions = <Widget>[
HomeSubScreen(healthData),
];
}
更新: 如果我添加了 then() 我会收到以下错误:
NoSuchMethodError: The method 'elementAt' was called on null.
代码更新:
@override
void initState() {
super.initState();
sendHealthData().then((response){
_widgetOptions = <Widget>[
HomeSubScreen(healthData),
];
});
}
【问题讨论】:
-
然后使用
Future.then()
标签: flutter