class App extends StatefulWidget {
....
return HomeProvider(
homeBloc: HomeBloc(),
child: MaterialApp(
home: HomeScreen(),
),
);
class HomeScreen extends StatefulWidget {
HomeBloc homeBloc = HomeBloc();
}
在以上两种情况下,我阅读的大多数教程都使用第一种方法。第二种方法完全错误吗?还是对应用程序有负面影响?
我可以看到一个区别。
我可以在第一种方法中通过homeBloc
访问HomeProvider.of context
。对于第二种方法,我必须在所有小部件中传递homeBloc
。
答案 0 :(得分:0)
当然,您可以在没有提供程序的情况下使用bloc。但是,如果您使用相同的块共享2个屏幕,则块内部的流值将有所不同,因为您没有使用InheritedWidget(通常在提供程序中)。提供程序的功能是为您的集团提供InhteritedWidget,以便多个屏幕可以访问同一流。
答案 1 :(得分:0)
绝对有可能。我现在在整个应用程序中都使用了一个块(因为我来自react-native redux,阿波罗背景,单一的事实来源对我来说更有意义)。一个例子如下。您可以声明您的bloc单个实例,并在使用它的任何位置将其导入,以便引用同一实例。
new Scanner(new FileReader(file.getAbsolutePath()))