【发布时间】:2021-11-26 17:13:57
【问题描述】:
最近开始使用 BLoC 方法来构建应用程序,但不清楚的一件事是在哪里“保留” BLoC 变量。我想我们可以有这两种选择:
- 在 BLoC 类中声明一个变量;例如,在我的课堂上,我可以做到以下几点:
class ModulesBloc extends Bloc<ModulesEvent, ModulesState> {
late String myString;
}
并在我的 UI 中按如下方式访问它:
BlocProvider.of<ModulesBloc>(context).myString;
- 将其作为状态变量保存;例如,我可以如下声明我的状态类:
class ModulesState extends Equatable {
const ModulesState({required this.myString});
final String myString;
@override
List<Object> get props => [myString];
}
并在我的 UI 中按如下方式访问它:
BlocBuilder<ModulesBloc, ModulesState>(
builder: (BuildContext context, ModulesState modulesState) {
modulesState.myString;
}
)
上述任何方法是否存在性能损失/状态稳定性问题?
谢谢!
【问题讨论】: