颤振状态管理失败

时间:2021-07-15 05:52:43

标签: firebase flutter

状态管理失败。

我用 materialapp 包裹了启动画面,但出现以下错误

错误:在构建 FutureBuilder(state: _FutureBuilderState#28998) 时抛出了以下断言: 未找到 MediaQuery 小部件祖先。

返回脚手架( 身体:中心( 孩子:CircularProgressIndicator(), ), );

修改这部分返回Container(),错误就会消失。但这似乎不是正常方式。

这是因为它在启动画面触发之前显示了一段时间的空白屏幕。

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final _init = Firebase.initializeApp();
    return FutureBuilder(
        future: _init,
        builder: (BuildContext context, snapshot) {
          if (snapshot.hasError) {
            return Scaffold(
              body: Column(
                children: [
                  Icon(Icons.error),
                  Center(
                    child: Text('something went wrong!'),
                  ),
                ],
              ),
            );
          } else if (snapshot.hasData) {
            return MultiProvider(
              providers: [
                ChangeNotifierProvider<AuthProvider>.value(
                  value: AuthProvider(),
                ),
                StreamProvider<User?>.value(
                  value: AuthProvider().user,
                  initialData: null,
                  catchError: (_, err) => null,
                ),
                ChangeNotifierProvider(
                    create: (BuildContext context) =>
                        MovieNowPlayingProvider()),
                ChangeNotifierProvider(
                    create: (BuildContext context) => TvPopularProvider()),
              ],
              child: MaterialApp(
                debugShowCheckedModeBanner: false,
                home: SplashScreen(),
              ),
            );
          }
          return Scaffold(
            body: Center(
              child: CircularProgressIndicator(),
            ),
          );
        });
  }
}

0 个答案:

没有答案