颤抖:如何使用“等待”来等待其他BLoC事件完成

时间:2020-09-19 20:44:30

标签: flutter async-await state bloc

在屏幕初始化中,我正在通过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调用。任何有启发的人吗?

0 个答案:

没有答案