【问题标题】:Flutter - Show alert dialog after StreamBuilder loaded data and UIFlutter - 在 StreamBuilder 加载数据和 UI 后显示警报对话框
【发布时间】:2020-08-21 22:16:46
【问题描述】:

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

在构建期间调用 setState() 或 markNeedsBuild()。

代码:

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

【问题讨论】:

    标签: flutter dart flutter-layout rxdart stream-builder


    【解决方案1】:

    你可以这样做:

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

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

    【讨论】:

    • 嘿,我现在可以显示对话框,但每次我恢复屏幕时它都会呈现。或导航到任何其他屏幕。
    • 你确定你没有使用addPersistentFrameCallback
    • 不,我确实使用了已回答的那个。认为这是每次在 StreamBuilder 中调用 build 方法的问题,但这是另一个问题。谢谢你的帮助伙伴。另外,你有这个问题的参考链接吗?
    猜你喜欢
    • 2021-01-30
    • 2021-01-17
    • 1970-01-01
    • 2021-08-14
    • 2020-03-21
    • 1970-01-01
    • 2023-03-13
    • 2020-01-14
    • 1970-01-01
    相关资源
    最近更新 更多