【发布时间】:2019-09-25 06:00:09
【问题描述】:
启动 Flutter 应用时,我在哪里运行初始化代码?
void main() {
return runApp(MaterialApp(
title: "My Flutter App",
theme: new ThemeData(
primaryColor: globals.AFI_COLOUR_PINK,
backgroundColor: Colors.white),
home: RouteSplash(),
));
}
如果我想运行一些初始化代码,比如获取共享首选项,或者(在我的情况下)初始化一个包(并且我需要传入 MaterialApp 小部件的 BuildContext),那么正确的做法是什么这?
我应该将 MaterialApp 包装在 FutureBuilder 中吗?还是有更“正确”的方法?
------- 编辑 --------------------------- ------------
我现在已将初始化代码放在RouteSplash() 小部件中。但是由于我需要应用程序根目录的 BuildContext 进行初始化,所以我在 Widget build 覆盖中调用了初始化并传入 context.ancestorInheritedElementForWidgetOfExactType(MaterialApp)。因为我不需要在显示启动屏幕之前等待初始化完成,所以我没有使用Future
【问题讨论】:
标签: flutter