flutter - Bloc 到 Bloc 通信 Mutibloc 提供程序
问题描述
我正在使用 flutter_bloc 并且我需要一个 bloc与另一个 bloc通信- 我有一个 activityBloc 需要监听 authBloc 以确定作者是否经过身份验证并获取用户 ID(目的是开始监听 firestore 上的文档更改基于来自身份验证的用户 ID)。
我通过构造函数将依赖对象传递给activityBloc。
class ActivityBloc extends Bloc<ActivityEvent, ActivityState> {
final AuthBloc authBloc;
final ActivityRepository repo;
StreamSubscription authSubscription;
StreamSubscription activitySubscription;
String id; // userid
int limit = 10;
ActivityBloc({this.authBloc, this.repo}) {
id = "";
authSubscription = authBloc.listen((state) {
if (state is AuthenticatedState) {
id = state.user.uid;
...
});
});
}
});
}
@override
ActivityState get initialState => ActivityInitial();
...
}
我需要在 multibloc 提供程序中公开这些,我如何能够在需要将一个 bloc 传递到另一个 bloc 的 multibloc 提供程序中实例化这些 bloc?
谢谢
解决方案
您可以按照以下方式将一个集团的实例用于另一个集团。
return MultiBlocProvider(
providers: [
BlocProvider<AuthBloc>(
create: (BuildContext context) => AuthBloc(),
),
BlocProvider<ActivityBloc>(
create: (BuildContext context) => ActivityBloc(
authBloc: BlocProvider.of<AuthBloc>(context),
repo: /// instance of your activity repository,
),
),
],
child: App(),
);
推荐阅读
- python - 如何检索 SQL Server RAISERROR(或 PRINT)消息?
- flutter - 在 Flutter 中预加载资产图片
- python - opencv 4.5.3 imshowerror:“错误:(-215:断言失败)!函数'cv :: cvtColor'中的_src.empty()”
- parallel-processing - 如何在 Jmeter 的另一个并行控制器中使用并行控制器?
- python - 如何运行具有指定核心数的 Python 程序并跟踪它的内存和执行时间?
- flutter - Flutter bloc - 在状态变化时显示小吃吧
- python - 从 pandas python 中的多个 url 创建单个数据框
- nativescript - NativeScript + Angular - 向后导航动画
- javascript - 在工作表中搜索特定文本并根据其内容向该单元格添加注释
- sql - 在具有多个字段的 JSON 中搜索关键字