【问题标题】:Is it ok to pass BuildContext to BLoC?可以将 BuildContext 传递给 BLoC 吗?
【发布时间】:2026-02-17 07:50:01
【问题描述】:

在 Android 的 MVVM 中,将上下文传递给 viewmodel 意味着打破这种模式。是否应该将 BuildContext 传递给 Flutter 的 Bloc 架构中的 bloc 类?

【问题讨论】:

  • 你为什么要这样做?一般来说,你不想这样做。

标签: flutter dart bloc


【解决方案1】:

小部件的状态总是有一个与之关联的 BuildContext 并且永远不会更改它,因此您实际上可以存储它,但我认为这不是一个好主意。 Bloc 类是 MVVM 模式中的 VM,它不应该真正了解 View(小部件树)。

【讨论】:

    【解决方案2】:

    不,不可以将 BuildContext 传递给 BLoC。如果需要,您可以在 BLoC 和您的页面之间流式传输或 sinc 数据。 例如,在 BLoC 中创建 StreamController 的对象并将其流式传输到您的页面上。 BLoC 和小部件,它们中的每一个都位于架构的单独层中。

    这是 BLoC 样板。 https://github.com/rvhamed/flutter_BLoC_boilerplate

    【讨论】:

      最近更新 更多