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

Flutter - Show alert dialog after StreamBuilder loaded data and UI

我想在从 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 运行 在帧期间,就在持久帧回调之后(即主渲染管道已被刷新时)。