簡體   English   中英

如何在 flutter 中使用 BlocProvider

[英]How to use BlocProvider in flutter

在使用 BlocProvider 之前,我有 Bloc class,如下所示。
我想使用'flutter_bloc 4.0.0'來使用blockProvider。

class SelfRentalBloc {

  final _srsController = StreamController<List<SelfRental>>.broadcast();
  get srs => _srsController.stream;

  SelfRentalBloc() {
    getSRs();
  }

   ... more code
}

所以我在 myApp.dart 中添加了 blocProvider。 void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return BlocProvider(
        create: (BuildContext context) => SelfRentalBloc(),
        child: MaterialApp(
          initialRoute: '/',
          routes: {
            '/': (BuildContext context) => HomePage(),
            '/page': (BuildContext context) => Page(),
          },
        ));
  }
}

但它說 SelfRental 不擴展 Bloc。
我想我必須修改上面的 SelfRentalBloc class。
但我不知道怎么做。 你能推薦一些解決方案嗎? 感謝您閱讀。

) 我已經閱讀了 flutter_bloc 的文檔。 但由於我的低級別 flutter,我的情況很難理解。

'flutter_bloc 4.0.0' 被構建為使用庫本身的塊(或擴展塊)。

在文檔中,您可以找到如何實現自己的塊的示例:https://pub.dev/packages/flutter_bloc#-example-tab-

您可以在示例中看到此 class 簽名: class CounterBloc extends Bloc<CounterEvent, int>

  • CounterBloc 是您的集團的名稱,它擴展了“集團”(來自圖書館)。
  • CounterEvent 是一種事件類型。
  • int 是包含在 bloc 中的值。

事件是您要觸發哪個集團動作的事件標識。 該值與您所在集團的“狀態”類型相同。

要使用該庫,請嘗試該示例,但我認為您需要重寫您的 bloc 以符合該庫或保留您的自定義實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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