0

据我了解,我知道有状态的小部件构建方法可以被多次调用。

即使我使用了无状态小部件,我也不明白为什么多次调用 Root 小部件 MaterialApp 。

这是代码

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SharedPref.init();

  Bloc.observer = BSCTaxObserver();
  runApp(BSC());
}

class BSC extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print('*** Root widget called ***');
    return MultiBlocProvider(
      providers: [
        BlocProvider<DocumentsBloc>(
          create: (context) => DocumentsBloc(APIService()),
        ),
        BlocProvider<FileUploadBloc>(
          create: (context) => FileUploadBloc(APIService()),
        ),
        BlocProvider<PdfBloc>(
          create: (context) => PdfBloc(APIService()),
        ),
        BlocProvider<AccountBloc>(
            create: (context) => AccountBloc(APIService()))
      ],
      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        title: AppStrings.appName,
        builder: BotToastInit(),
        navigatorObservers: [BotToastNavigatorObserver()],
        theme: ThemeData(
          textTheme: GoogleFonts.poppinsTextTheme(),
          primaryColor: AppColors.primaryColor,
          primaryColorDark: AppColors.primaryDark,
          primaryColorLight: AppColors.primaryLight,
          primarySwatch: Colors.indigo,
          visualDensity: VisualDensity.adaptivePlatformDensity,
        ),
        home: LoginScreen(),
        
      ),
    );
  }
}

这是日志

在此处输入图像描述

提前致谢

4

0 回答 0