【发布时间】:2026-02-17 07:50:01
【问题描述】:
在 Android 的 MVVM 中,将上下文传递给 viewmodel 意味着打破这种模式。是否应该将 BuildContext 传递给 Flutter 的 Bloc 架构中的 bloc 类?
【问题讨论】:
-
你为什么要这样做?一般来说,你不想这样做。
在 Android 的 MVVM 中,将上下文传递给 viewmodel 意味着打破这种模式。是否应该将 BuildContext 传递给 Flutter 的 Bloc 架构中的 bloc 类?
【问题讨论】:
小部件的状态总是有一个与之关联的 BuildContext 并且永远不会更改它,因此您实际上可以存储它,但我认为这不是一个好主意。 Bloc 类是 MVVM 模式中的 VM,它不应该真正了解 View(小部件树)。
【讨论】:
不,不可以将 BuildContext 传递给 BLoC。如果需要,您可以在 BLoC 和您的页面之间流式传输或 sinc 数据。 例如,在 BLoC 中创建 StreamController 的对象并将其流式传输到您的页面上。 BLoC 和小部件,它们中的每一个都位于架构的单独层中。
这是 BLoC 样板。 https://github.com/rvhamed/flutter_BLoC_boilerplate
【讨论】: