@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: AppPages.allBlocProviders(context) ,
child: ScreenUtilInit(
builder: (context, child) =\> MaterialApp(
debugShowCheckedModeBanner: false,
home: const Welcome(),
theme: ThemeData(
appBarTheme: const AppBarTheme(
iconTheme: IconThemeData(
color: AppColors.primaryText
),
elevation: 0,
backgroundColor: Colors.white
)
),
onGenerateRoute: AppPages.GenerateRouteSettings,
),
)
);
}
这是导致错误的主要DART文件
class PageEntity{
String route;
Widget page;
dynamic bloc;
PageEntity({required this.route, required this.page, this.bloc});
}
这是帮助循环访问提供程序的实体类
class AppPages{
static List<PageEntity> routes (){
return [
PageEntity(
route: AppRoutes.INITIAL,
page: const Welcome(),
bloc: BlocProvider(create: (_)=>WelcomeBloc(),)
),
PageEntity(
route: AppRoutes.SING_IN,
page: const SignInPage(),
bloc: BlocProvider(create: (_)=>SignInBlocs(),)
),
PageEntity(
route: AppRoutes.REGISTER,
page: const Register(),
bloc: BlocProvider(create: (_)=>RegisterBlocs(),)
),
PageEntity(
route: AppRoutes.APPLICATION,
page: const Welcome(),
),
];
}
// return all the bloc providers
static List<dynamic> allBlocProviders(BuildContext context){
List<dynamic> blocProviders = <dynamic>[];
for(var bloc in routes()){
blocProviders.add(bloc.bloc);
}
return blocProviders;
}class AppPages{
static List<PageEntity> routes (){
return [
PageEntity(
route: AppRoutes.INITIAL,
page: const Welcome(),
bloc: BlocProvider(create: (_)=>WelcomeBloc(),)
),
PageEntity(
route: AppRoutes.SING_IN,
page: const SignInPage(),
bloc: BlocProvider(create: (_)=>SignInBlocs(),)
),
PageEntity(
route: AppRoutes.REGISTER,
page: const Register(),
bloc: BlocProvider(create: (_)=>RegisterBlocs(),)
),
PageEntity(
route: AppRoutes.APPLICATION,
page: const Welcome(),
),
];
}
// return all the bloc providers
static List<dynamic> allBlocProviders(BuildContext context){
List<dynamic> blocProviders = <dynamic>[];
for(var bloc in routes()){
blocProviders.add(bloc.bloc);
}
return blocProviders;
}
}
This is where all the providers lies
我try 了什么:
我try 将返回类型动态更改为BlocProvider.
我将Providers属性更改为AppPages.allBLocProviders(Context)为[...AppPages.allBLocProviders(Context)].