簡體   English   中英

如何從 flutter 集團全局收聽?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM