所以,像大多数人一样,我对Flutter,Bloc和Firebase Analytics是个新手。有几种方法可以通过让一个监听另一个来同步区块,但它不太符合我的情况,因为我想跟踪一些“分析相关的状态变量”。
AnalyticsBloc extends Bloc<AnalyticsEvent, AnalyticsState> {
final FirebaseAnalytics analytics;
final FirebaseAnalyticsObserver observer;
@override
FirebaseAnalyticsState get initialState => FirebaseAnalyticsState.initial();
void setScreen(String currentScreen) {
// sends and stores the currentScreen in Bloc State
dispatch(SetScreenEvent(currentScreen));
}
void sendEvent(String eventName) {
// uses the stored currentScreen in Bloc State
dispatch(SendEventEvent(eventName));
}
...
}class AppBloc extends Bloc<AppEvent, AppState> {
@override
AppState get initialState => AppState.initial();
void someApplicationEvent() {
// Problem: is there any way to trigger sendEvent from this Bloc?
sendEvent('someAppEventTriggered');
dispatch(ResetAppEvent());
}
}问题:有没有办法从AppBloc触发AnalyticsBloc.sendEvent
或者我应该用不同的方式设计它?
发布于 2020-12-16 18:18:03
将blocA实例传递给blocB构造函数并调用blocA的函数
https://stackoverflow.com/questions/55643300
复制相似问题