flutter - Flutter-StreamBuilder加载数据和UI后显示警报对话框

标签 flutter dart flutter-layout rxdart stream-builder

从StreamBuilder获取数据后,我想显示一个警告对话框。我也有要渲染的UI。当前,在返回实际的UI之前尝试在_loadUI方法中构建对话框时遇到了这样的错误。

setState() or markNeedsBuild() called during build.



码:
if (dataSnapshot.hasData) {
            return dataSnapshot.data ? _loadUI(dataSnapshot.data) : _emptyView();
          }

最佳答案

您可以这样:

void _loadUI(snapshot) {
...

  WidgetsBinding.instance.addPostFrameCallback((_){
    showDialog(
      context: context, 
      ...
    );
  });
}

addPostFrameCallback在帧期间运行,紧接在持久帧回调之后(刷新主渲染管道时)。

关于flutter - Flutter-StreamBuilder加载数据和UI后显示警报对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61643882/

相关文章:

dart - Flutter 将文本字段对齐到底部,文本从顶部对齐

javascript - 如何在聚合物元素中使用来自 Dart 的 javascript

android - 如何使相机仅聚焦在矩形内部并仅在 flutter 中读取矩形内部的文本?

flutter - 在 Flutter 中有条件地锁定设备方向

带有 CrossAxisAlignment.stretch 的 Flutter Row 抛出错误 BoxConstraints 强制无限高度

dart - 更改状态后屏幕不重新渲染

dart - 使用 Dart 解析 JSON 字符串时转换数据

flutter - ListView 构建器项目的动态高度

flutter - ChangeNotifierProxyProvider 构建器与更新问题

flutter - AppBar 中的扩展小部件