【发布时间】:2020-07-15 22:41:28
【问题描述】:
我在 initState 函数中调用了触发函数。在触发函数中,我将从 API 获取数据,并使用 storeddata.fromjson 函数解析数据。然后我会将这些值存储在变量中。据我所知,一旦创建了这个有状态小部件的对象,就会调用 initState 函数。但仍然在应用程序中,它会在几秒钟内将 exchangeval_bitcoin 显示为 0,然后它会被更新(我已将 exchangeval_bitcoin 初始化为 0)。这是否意味着即使在输入 await 关键字之后,也会在 initState 函数完成之前调用 build 函数?在更新该值之前如何实现加载屏幕?
void triggerfun() async {
var decodedmap;
Jsonparse p = Jsonparse(url: uri);
decodedmap = await p.cryptocovert();
Storeddata s = Storeddata.fromjson(decodedmap);
setState(() {
exchangeval_bitcoin = s.getdataforbitcoin();
exchangeval_etherium = s.getdataforetherium();
exchangeval_litecoin = s.getdataforlitecoin();
});
permanent = s;
}
//calling initstate
@override
void initState() {
super.initState();
triggerfun();
}
提前致谢。
【问题讨论】:
标签: asynchronous flutter async-await future futuretask