使用 flutter_bloc 包时,何时实际手动关闭 bloc?
Posted
技术标签:
【中文标题】使用 flutter_bloc 包时,何时实际手动关闭 bloc?【英文标题】:When to actually close a bloc manually when using the flutter_bloc package? 【发布时间】:2021-06-25 06:31:02 【问题描述】:我最近在 youtube (https://www.youtube.com/watch?v=knMvKPKBzGE&t=3s) 上观看了 felix Angelov 的 flutter_bloc package (https://pub.dev/packages/flutter_bloc) 演讲,非常棒!
我对在 dispose 方法中手动关闭 bloc 有点困惑。我从演讲中听说,如果我们使用flutter_bloc包,我们不必调用blocs的dispose方法,如果有错误请纠正我。
提前致谢
【问题讨论】:
【参考方案1】:当您将BlocProvider
与构建器一起使用时,BlocProvider
负责创建和关闭 Bloc。如果您想为新路由提供现有 bloc,则应使用BlocProvider.value
,因为它不会自动关闭 bloc。
可以参考documentation
在大多数情况下,应该使用 BlocProvider 创建新的块,这些块将可供子树的其余部分使用。在这种情况下,由于 BlocProvider 负责创建 bloc,它会自动处理关闭 bloc。
在某些情况下,BlocProvider 可用于将现有块提供给小部件树的新部分。当需要将现有集团提供给新路线时,这将最常用。在这种情况下,BlocProvider 不会自动关闭 bloc,因为它没有创建它。
【讨论】:
以上是关于使用 flutter_bloc 包时,何时实际手动关闭 bloc?的主要内容,如果未能解决你的问题,请参考以下文章