如何传递 Future 而不是值作为参数

How to pass a Future instead of a value as parameter

假设我需要创建这个 Widget():

TextButton(
   onPressed: () {},
   child: const Text( myModel.getNameOfCustomer() ),
)

目前,我的应用程序查询 EModel class 以同步方式获取 nameOfCustomer 的值。这是因为 EModel 完全在本地维护其存储。

假设,我想以这种方式更改 EModel,使 class 本身查询,例如一个数据库。然后,getNameOfCustomer() 需要 return 异步数据并将其包装在 Future 中。

问:如何将 Future<> 作为字符串参数传递给 Text()

Text() 是否有一个参数传递给 Future<> futureData 而不是 String data,因此它自己最终会读取 futureData 的值并设置它的 String data

也就是说...

如果我的应用程序关于 UI 同步工作并且我切换到异步数据模型,我是否需要重写整个应用程序?

是否存在为此类迁移做准备的标准模式?

您要找的是FutureBuilder。 用这个包裹你的文本小部件,你就可以等待那个未来,而且,在等待的时候,你可以显示其他东西,比如加载 indicator/skeleton.