我正在使用flutter_bloc,我想知道应该使用哪种方法,这两种方法之间的区别是什么?:我读到第一个带有(值)块的方法不会自动关闭,但实际上我不这样做不明白这是什么意思吗?
BlocProvider<LoginBloc>.value(
value: (LoginBloc(LoginInitialState(), AuthRepository())),
),
BlocProvider<ProfileBloc>(
create: (context) => ProfileBloc(ProfileInitialState(), AuthRepository()),
),
答案 0 :(得分:0)
据我了解,您将使用:
BlocProvider.value(
value: BlocProvider.of<BlocA>(context),
child: ScreenA(),
);
如果您已经在其他bloc
中创建了BlocProvider
,而您只是想让同一集团在小部件树中的其他位置可用。
我假设由于此bloc
不是由您当前使用的BlocProvider
创建的(与BlocProvider.value
一起使用),因此它无法处理{ }-将由原始bloc
完成。
因此,除非要使用的BlocProvider
不在其他地方存在,否则您可以仅将常规方法与bloc
一起使用。
答案 1 :(得分:0)
在我们的例子中,如果我们创建一个全新的肘来传递给孩子,我们将使用:
BlocProvider<NameOfCubit>(
...
child: Screen(),
)
如果我们想使用我们已经创建的肘,那么我们将通过它:
BlocProvider<NameOfCubit>.value(
...
child: Screen(),
)