【发布时间】:2020-08-01 12:48:56
【问题描述】:
我正在使用 Flutter 开发一个移动应用程序。我是 Flutter 的新手。我正在使用 BLoC 进行状态管理。我知道它是专门为管理异步执行而设计的。但 BLoC 的目的也是为了进行状态管理。但我有点困惑,不太确定如何处理 BLoC 中的主要数据类型。
让我们想象一下,我有一个按钮和一个图像。功能是当单击按钮时,图像的可见性将被切换。从字面上看,我们只需要使用一个布尔变量来管理图像的状态。这就是我将如何实现它的方式。
我有一个名为 HomeBloc 的 bloc 类,其实现如下。
class HomeBloc {
bool _isImageDisplayed = true;
bool get isImageDisplayed => _isImageDisplayed;
void set isImageDisplayed(bool displayed) {
this._isImageDisplayed = displayed;
}
//the rest of the code for other functionalities goes here
}
final homeBloc = HomeBloc();
然后在 HomePage 小部件中,当单击按钮时,我在 setState 方法中像这样更新图像的状态。
this.setState(() {
homeBloc.isImageDisplayed = false;
});
我的问题是“这是在 Flutter 中管理 BLoC 中主要数据类型的标准方法”?这是最佳做法吗?我们需要使用 StreamBuilder 吗?我们甚至需要在 BLoC 内部管理它吗?
【问题讨论】: