收到事件之前的Flutter Bloc发送状态

时间:2020-06-06 17:32:46

标签: flutter state bloc

所以,这很奇怪。我有一个bloc设置程序和一个将事件发送到bloc并接收状态的屏幕...问题是屏幕在bloc接收事件之前正在接收状态...这怎么可能

这是代码。

屏幕:

  @override
  Widget build(BuildContext context) {
    BlocProvider.of<NoteBloc>(context).add(ScreenLoadedEvent(id: noteId));
    print('Screen: Send the screenloadedevent');
    return Scaffold(
      body: BlocBuilder<NoteBloc, State>(
        builder: (context, state) {
          if (state is InitialState) {
            print('state initial'); //this never prints... 
            return Container();
          }
          if (state is LoadedState) {
            print('Screen: Recieved state from bloc state.note is ${state.note.title}');
            return SomeWidget();
          }

集团:

class NoteBloc extends Bloc<Event, State> {
  NoteRepo notesRepository;

  NoteBloc({this.notesRepository});

  @override
  State get initialState => InitialState();

  @override
  Stream<State> mapEventToState(Event event) async* {
    if (event is ScreenLoadedEvent) {
      print('Bloc: recieved screenloadedvent');
      note = await notesRepository.fetchNote(event.id);
      yield LoadedState(note);
    }

这是喷出的打印件。屏幕接收状态后,集团如何接收事件?团体只有在收到事件后才发送状态,对吗?

I/flutter ( 5256): Screen: Send the screenloadedevent
I/flutter ( 5256): Screen: Recieved state from bloc state.note is: null
Reloaded 8 of 757 libraries in 498ms.
I/flutter ( 5256): Bloc: recieved screenloadedevent <-- why is this happening last??? 

0 个答案:

没有答案