1

我使用 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 等价物?

谢谢!

4

1 回答 1

4

您可以覆盖该close方法:

class ChatBloc extends Bloc<ChatEvent, ChatState> {
  @override
  Future<void> close() {
    // Release resources here
    super.close();
  }
}
于 2020-05-17T15:11:09.017 回答