Flutter 使用BlocProvider.value延迟实例化块
我将生成的路线与颤振一起使用,我希望 但我认为,可能示例解决方案的可扩展性不是最好的,因为集群是用路由器实例化的 是否有一种方法仅当用户访问该路由时才实例化它们Flutter 使用BlocProvider.value延迟实例化块,flutter,dart,routes,bloc,flutter-bloc,Flutter,Dart,Routes,Bloc,Flutter Bloc,我将生成的路线与颤振一起使用,我希望 但我认为,可能示例解决方案的可扩展性不是最好的,因为集群是用路由器实例化的 是否有一种方法仅当用户访问该路由时才实例化它们 类批准者{ 最终_counterBloc=counterBloc(); 路由onGenerateRoute(路由设置设置){ 开关(设置.名称){ 案例“/”: 返回物料路线( 生成器:()=>BlocProvider.value( 值:_counterBloc, 子:主页(), ), ); 案例“/计数器”: 返回物料路线( 生成器:
类批准者{
最终_counterBloc=counterBloc();
路由onGenerateRoute(路由设置设置){
开关(设置.名称){
案例“/”:
返回物料路线(
生成器:()=>BlocProvider.value(
值:_counterBloc,
子:主页(),
),
);
案例“/计数器”:
返回物料路线(
生成器:()=>BlocProvider.value(
值:_counterBloc,
child:CounterPage(),
),
);
违约:
返回null;
}
}
}
明白了!颤振有一个名为late
的新关键字,可以在没有任何样板的情况下执行此操作
类批准者{
后期最终反阵营_CounterBloc=CounterBloc();
路由onGenerateRoute(路由设置设置){
开关(设置.名称){
案例“/”:
返回物料路线(
生成器:()=>BlocProvider.value(
值:_counterBloc,
子:主页(),
),
);
案例“/计数器”:
返回物料路线(
生成器:()=>BlocProvider.value(
值:_counterBloc,
child:CounterPage(),
),
);
违约:
返回null;
}
}
}
这就是为什么我们爱弗利特
参考资料:如果您在所有路线之间共享区块,请在您的
导航器上构建它们。
不会生成很多样板文件吗?为什么会生成样板文件?我想我需要使用类似于将其定义为null的东西,然后检查是否在每个路线上实例化null,但似乎我只能在调用时使用它的late
声明来实例化它。为什么您需要在每个路由上实例化它?每条路线都指向同一个集团,对吗?然后将您的Navigator
包装在BlocProvider
中,这样每个路由都可以隐式访问它。甚至不用担心在每条路线上搞砸。