为什么我的AsyncSnapshot的数据收到null

时间:2019-07-11 01:50:15

标签: flutter dart

我想首先说说我对Flutter非常陌生。我正在尝试在Flutter应用上实施BLoC。当我运行该应用程序时,它说它尝试对AsyncSnapshot的数据调用null。

StreamBuilder<List<String>>(
              stream: bloc.messages_stream,
              builder: (BuildContext context, AsyncSnapshot<List<String>> snapshot){
                if(snapshot.data == null) return CircularProgressIndicator();
                return ListView.builder(
                  itemCount: snapshot.data.length,
                  itemBuilder: (context, index){
                    return Text('${snapshot.data[index]}');
                  },
                );
              }
            )

这是我的BLoC的代码:

class MessageBloc{
  List<String> _messages = ['hello',];

  //Streamcontroller for messages
  final _messagesStreamController = StreamController<List<String>>();
  StreamSink<List<String>> get messages_sink => _messagesStreamController.sink;
  Stream<List<String>> get messages_stream => _messagesStreamController.stream;

  //streamController for events
  final _messageEventController = StreamController<MessageEvent>();
  Sink<MessageEvent> get message_event_sink => _messageEventController.sink;

  _addMessage(MessageEvent event){
    _messages.add(event.message);
    messages_sink.add(_messages);
  }

  MessageBloc(){
    _messageEventController.stream.listen(_addMessage);
  }

  dispose(){
    _messagesStreamController.close();
    _messageEventController.close();
  }
}

应该从流中获取数据。也许这也是我的BLoC错误?我尝试调试它,它表明快照为空。我该如何解决?为什么我的快照没有任何数据?

这是完整代码的链接,你们可能有一些建议或其他建议:https://raw.githubusercontent.com/freanuperiaa/flutter_app/  我真的希望你们能帮忙...

0 个答案:

没有答案