[英]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.