据我了解,我知道有状态的小部件构建方法可以被多次调用。
即使我使用了无状态小部件,我也不明白为什么多次调用 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(),
),
);
}
}
这是日志
提前致谢