在 Flutter 中使用 BLoC - 在有状态小部件与无状态小部件中的使用

Posted

技术标签:

【中文标题】在 Flutter 中使用 BLoC - 在有状态小部件与无状态小部件中的使用【英文标题】:Using BLoC in Flutter - Usage in Stateful widgets vs Stateless Widgets 【发布时间】:2020-02-19 05:09:09 【问题描述】:

在 Flutter 中使用 BLoC 时,在有状态小部件和无状态小部件中定义 BlocBuilder / BlocListener 有什么区别?

我们不能总是使用无状态小部件,因为 bloc 负责为我们重建小部件吗?是否存在您可能想要使用有状态小部件的用例?

PS : 我正在尝试使用 flutter_bloc 1.0.0 包进行颤振 (https://pub.dev/packages/flutter_bloc)。

【问题讨论】:

【参考方案1】:

您可以在整个应用程序中使用无状态权重,因为任何重建都可以通过 StreamBuilder 或 BlocBuilder 中的构建器方法处理。虽然通常建议这样做,但没有要求这样做,但如果您希望单击以切换某些信息或显示与块交互的按钮,则使一些小部件有状态可能是有意义的。

【讨论】:

以上是关于在 Flutter 中使用 BLoC - 在有状态小部件与无状态小部件中的使用的主要内容,如果未能解决你的问题,请参考以下文章

无法使用颤振 Bloc 模式更新小部件外部的 UI

Flutter 从其他 Bloc 监听 Bloc 状态

Flutter Bloc - Flutter Bloc 状态未更新

使用 Flutter BLoC 模式跟踪多个状态

Flutter - Bloc 仅在状态未扩展 Equatable 时发出状态

Flutter 状态管理BLoC