如何在Flutter中使用BlocProvider

时间:2020-05-09 13:56:28

标签: flutter

在使用BlocProvider之前,我有Bloc类,如下所示。
我想通过'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类。
但是我不知道该怎么做。您能推荐一些解决方案吗?谢谢您阅读。

)我已经阅读了flutter_bloc的文档。但是由于我的颤抖程度较低,因此我的情况很难理解。

1 个答案:

答案 0 :(得分:1)

'flutter_bloc 4.0.0'被构建为使用库本身中的块(或扩展的块)。

在文档中,您可以找到如何实现自己的集团的示例:https://pub.dev/packages/flutter_bloc#-example-tab-

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

  • CounterBloc是您的集团的名称,它扩展了“ Bloc”(来自库)。
  • CounterEvent是事件类型。
  • int是集团中包含的值。

事件是要标识哪个集团动作的事件标识。 该值与集团的“状态”相同。

要使用该库,请尝试以下示例,但我认为您需要重写bloc以使其与该库兼容或保留您的自定义实现。