首页 > 解决方案 > Flutter BLoC (flutter_bloc) 是否与 onDispose 等效?

问题描述

我使用 flutter_bloc 创建了一个 BLoC,我在其上收听流。当父小部件被释放(因此 BLoC 对象)时,我想关闭我的流。

class ChatBloc extends Bloc<ChatEvent, ChatState> {
  //..bloc params..//

  ChatBloc(this.chatId) {
    this.add(MarkAsRead());
    subscription = messagesFirestoreRepository.chatMessages(chatId).listen((messages) {
      this.add(UpdateMessages(messages));
    });
  } //I WANT TO CLOSE THIS WHEN THE BLOC GETS DISPOSED OR DEINITED

  //..other stuff..//
}

flutter_bloc 或 'Any' 类是否具有 dispose 或 Swift 的 deinit 等价物?

谢谢!

标签: flutterdartstreamflutter-bloc

解决方案


您可以覆盖该close方法:

class ChatBloc extends Bloc<ChatEvent, ChatState> {
  @override
  Future<void> close() {
    // Release resources here
    super.close();
  }
}

推荐阅读