在屏幕初始化中,我正在通过externalData_bloc加载数据。在同一屏幕上,我还将呈现另一个由internalData_bloc控制的小部件,以供用户输入,这取决于导入记录的数量(需要多少行)。当然,呈现的速度比数据加载的速度快,因此我需要空行。
我发现这个不错的question & answer,但是我无法正常工作。解决方案说
Future loginProcess() async {
await for (var result in _userBloc.state) {
if (result.status == Status.finished) {
return;
}
}
}
我在我的存储库中。在这里,我还将外部数据存储在变量中。因此,在存储库类中,我具有获取记录数量的功能(properties
存储在存储库中,并且我想返回其长度)。
Future<int> getNoOfProperties(int problem) async {
LogicGraphsPStmntBloc bloc = LogicGraphsPStmntBloc();
Future propertiesLoad() async {
await for (var s in bloc) {
if (s == LogicGraphsPStmntLoadSuccess) {
return;
}
}
}
propertiesLoad();
return properties.length;
}
但是无论我尝试为await for (var result in XXXX)
或if (s.YYY == ZZZ)
输入什么,它都不起作用。我的理解是,XXXX必须是一个流,这就是为什么我使用bloc = LogicGraphsPStmntBloc()
的原因。但是我想这会创建另一个实例,而不是我的小部件中使用的实例。 LogicGraphsPStmntBloc
也不起作用,状态也不起作用。 bloc
至少不会在编辑器中引发错误,但是除了实例问题外,if语句还会引发错误,在cubit.dart中,StreamSubscription<State> listen(...
被cancelOnError
调用。任何有启发的人吗?