简化对 initState() 中函数的等待

Simplify waiting for functions in initState()

提问人:Lama_Agent 提问时间:7/9/2023 更新时间:7/10/2023 访问量:21

问:

我有以下问题: 启动应用程序时,我需要加载名称、BaseSalary 和图像,并且我想仅在加载所有数据时继续显示屏幕。 我现在已经用一个解决了这个问题,并且我已经调用了所有函数。 有没有更好的方法:boolean loading = trueinitState()

https://hastebin.skyra.pw/pipequmuye.ts

Android iOS Flutter 异步 async-await

评论


答:

0赞 Randal Schwartz 7/10/2023 #1

initState 不能是异步的,并且必须相对较快。在那之后,您的构建将几乎立即被调用。如果屏幕上没有可用的所有内容,则必须使用 FutureBuilder 之类的东西来提供要显示的小部件,直到数据可用为止。

因此,请使用 initState 启动一个 future,将其保存在 State 属性中,并使用 FutureBuilder 在生成中监视该 future。在 Flutter Codelab 中有一些这样的例子,如果你还没有这样做,现在应该花时间去体验一下。

永远,永远,永远没有一个名为 isLoading 的布尔值。了解 Future 值及其工作原理。它们有效地消除了对单独的布尔状态的需求。