FLutter - 如何在 BLoC 初始化时调度事件

Posted

技术标签:

【中文标题】FLutter - 如何在 BLoC 初始化时调度事件【英文标题】:FLutter - How to dispatch an event on BLoC initialization 【发布时间】:2019-12-06 16:51:52 【问题描述】:

我知道如何轻松设置集团的初始状态。是否可以在创建新 bloc 时调度事件?

class MyBloc extends Bloc<MyEvent, MyState> 
  MyBloc() :
    this.dispatch(MyEvent()), // this line doesn't work
    super();

  @override
  MyState get initialState => MyStateInitial();

  @override
  Stream<MyState> mapEventToState(MyEvent event) async* 
    if (event is MyEvent) 
      ... do some stuff here ...
      yield MyStateAfterMyEvent(someParameters, thatCantBe, setManually);
    
  


我知道将参数传递给 bloc 构造函数有时会起作用。在我的情况下,参数是从互联网上获取的,所以我需要更多动态选项。实现这一点的方法是什么?

【问题讨论】:

【参考方案1】:

您可以使用级联运算符 .. 和 ' factory 构造函数来做到这一点。

factory MyBloc.dispatch(() => MyBloc()..dispatch(MyEvent());

【讨论】:

以上是关于FLutter - 如何在 BLoC 初始化时调度事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Widget 之外调度 Bloc 事件?

如何在 Hot Reload 上使用 Provider 维护 Flutter Global BloC 状态?

初始化 BLoC 时应该如何处理异步调用?

使用 bloc 时如何替换 Flutter 中的 transformEvents?

Dart/Flutter - 回调函数的收益

在 Flutter 中使用 Bloc/Cubit 时绕过 CONTEXT