[英]How to globally listen from a flutter bloc?
我正在我的应用程序上实施通知。
我有一个 Cubit 会在应用程序收到新通知时发出状态。
这是我的主要内容:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
...
BlocProvider<NotificationCubit>(
create: (context) => sl<NotificationCubit>())
],
child: MaterialApp(
home: Splash(),
onGenerateRoute: Routes.sailor.generator(),
navigatorKey: Routes.sailor.navigatorKey,
));
}
}
我正在使用get_it
进行依赖注入。
我尝试将BlocBuilder<NotificationCubit, NotificationState>
添加到我的主屏幕,并且每次用户收到通知时它都会起作用。
我的目标是在全球范围内处理通知。 我在创建肘部时尝试添加一个侦听器,但这不起作用:
BlocProvider<NotificationCubit>(
create: (context) => sl<NotificationCubit>()..listen((state) {
if (state is NotificationReceived){
print("Notificaton received");
}
}))
我听说将 get_it 与 bloc 一起使用不是一个好主意......
特别是在您的情况下,您正在为整个小部件树提供一个块。 尝试在不使用 get_it 的情况下提供 bloc,因为无论如何您都可以在整个应用程序中访问它。
这里有一个有趣的视频: https://youtu.be/THCkkQ-V1-8?t=6393
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.