FLutter - Как отправить событие при инициализации 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);
    }
  }
}

Я знаю, что передача параметров конструктору блока иногда может работать. В моем случае параметры берутся из Интернета, поэтому мне нужна более динамичная опция. Как этого добиться?


person prkmk    schedule 29.07.2019    source источник


Ответы (1)


Это можно сделать с помощью каскадного оператора .. и конструктора 'factory.

factory MyBloc.dispatch(() => MyBloc()..dispatch(MyEvent());
person Sergio Bernal    schedule 29.07.2019