我有一个监听消息流的肘部,并发出一个保存消息的状态。在屏幕中,我使用 BlocProvider 来访问 cubit,并使用 BlocBuilder 来显示消息。
在以下情况下,我是否需要关闭在 listen() 上创建的 StreamSubscription?有干净的方法吗?
class MessageCubit extends Cubit<MessageState> {
final GetMessagesUseCase getMessagesUseCase;
MessageCubit({this.getMessagesUseCase}) : super(MessageInitial());
Future<void> getMessages({String senderId, String recipientId}) async {
emit(MessageLoading());
try {
final messagesStreamData = getMessagesUseCase.call();
//This is where I listen to a stream
messagesStreamData.listen((messages) {
emit(MessageLoaded(messages: messages));
});
} on SocketException catch (_) {
emit(MessageFailure());
} catch (_) {
emit(MessageFailure());
}
}
}