【发布时间】:2021-08-03 02:57:31
【问题描述】:
在我的应用程序中,我想在创建小部件之前初始化一些东西。我需要在App 类中完全做到这一点,并尝试为此目的使用 FutureBuilder。但是例如_AppBlocProvider的build方法在initInjectionContainer()之前被调用。我的存储库尚未在 injectionContainer 中初始化,但提供程序中的 Blocs 正在尝试访问它的实例。这段代码有什么问题?
我也试过这个:
void main() {
runApp(App());
}
class App extends StatefulWidget {
@override
_AppState createState() => _AppState();
}
class _AppState extends State<App> {
Future<bool>? _myFuture;
Future<bool> _init() async {
...
await initInjectionContainer();
await sl<AudioManager>().preloadFiles();
return false;
}
...
@override
void initState() {
super.initState();
_myFuture = _init();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: _myFuture,
builder: (context, _) {
return _BlocProvider(
child: Builder(
builder: (context) => MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MainMenu(),
),
),
);
},
);
}
}
没用。
【问题讨论】:
标签: flutter flutter-futurebuilder flutter-future