我需要处置cubit实例吗?

Posted

技术标签:

【中文标题】我需要处置cubit实例吗?【英文标题】:Do I need to dispose cubit instances? 【发布时间】:2021-01-08 04:42:12 【问题描述】:

我是 Flutter 和 bloc 的新手。事实上,我最近才开始使用cubit。出于学习目的,我创建了一个简单的应用程序,在其中我使用 cubit 来实现 bloc 功能。在我在网上找到的所有示例中,他们建议在 UI 中处理 bloc 实例。但是,当涉及到肘时,我没有发现类似的东西。所以,我的问题是:我是否需要处置 cubit 实例以及如何处置?这里值得一提的是,我使用的是 MultiBlocProvider。

【问题讨论】:

【参考方案1】:

Bloc 扩展 Cubit,Cubit 扩展 Stream。像 Dart 中的任何 Stream 一样,它需要在不需要时进行处理,并且它具有 close 方法来执行此操作。 如果您使用 BlocProvider,此方法将自动执行

【讨论】:

感谢您的回答!这意味着我不必创建 @dispose 方法。对吗? 正确。 MultiBlocProvider 将处理处置 @johnweak 如果有帮助,您介意将帖子标记为答案吗? 但是,例如,如果我想在关闭之前取消订阅(或删除侦听器)。我应该重写 close 方法吗(当然是调用 super.close())? @Caiosantos 是的。在 Cubit 类中定义的订阅不会被关闭

以上是关于我需要处置cubit实例吗?的主要内容,如果未能解决你的问题,请参考以下文章

是否需要手动关闭和处置 SqlDataReader?

为啥我需要 Dispose 一个 System.Net.Mail.MailMessage 实例?

同步对象只创建一次对象

在 MVC 中实例化和处置 DbContext 的最佳方法是啥?

SQL Server最大内存设为0后的处置办法

为啥 FxCop 不报告 CA2000 对于这种未处置的类实例的琐碎情况?