gpt4 book ai didi

flutter - 如何在initState中等待异步

转载 作者:行者123 更新时间:2023-12-03 16:07:43 28 4
gpt4 key购买 nike

我有一个需要在有状态窗口小部件的initState中调用的异步函数,但是我不能使用await,因为initState不是异步的。
sendHealthDataasync,因为它从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),
];
});


}

最佳答案

我给你大概的想法。

@override
void initState() {
super.initState();

function().then((int value) {
// future is completed you can perform your task
});

function2(); // or you can simply call the method if you don't want anything to do after future completes
}

Future<int> function() async {
// do something here
}

Future<int> function2() async {
// do something here
}

关于flutter - 如何在initState中等待异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033473/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com