Flutter 颤振:在启动时显示对话框

Flutter 颤振:在启动时显示对话框,flutter,Flutter,我现在已经很熟悉弗利特了,但我不能对这件事耿耿于怀 我想在State类中第一次启动时显示一个对话框,其中T是一个有状态的小部件。该对话框包含一些有关如何使用该应用程序的简短说明。但是在build方法中执行此逻辑会抛出错误,在initState方法中也是如此 那么,我可以在哪里(或者更确切地说在什么时候)调用以下逻辑 if(someCondition) showDialog(...); 没有得到以下错误 生成FutureBuilder时抛出了以下断言(状态:_FutureBuilderSt

我现在已经很熟悉弗利特了,但我不能对这件事耿耿于怀

我想在
State
类中第一次启动时显示一个对话框,其中
T
是一个有状态的小部件。该对话框包含一些有关如何使用该应用程序的简短说明。但是在
build
方法中执行此逻辑会抛出错误,在
initState
方法中也是如此

那么,我可以在哪里(或者更确切地说在什么时候)调用以下逻辑

if(someCondition)
   showDialog(...);
没有得到以下错误

生成FutureBuilder时抛出了以下断言(状态:_FutureBuilderState#66844): 在生成过程中调用setState()或markNeedsBuild()

无法将此覆盖小部件标记为需要生成,因为 框架已经在构建小部件的过程中。小部件可以 仅当以下情况之一发生时,才标记为需要在构建阶段构建 它的祖先目前正在建造。此异常是允许的,因为 该框架在子部件之前构建父部件,这意味着 肮脏的后代将永远被建造。否则,该框架可能会失败 在此构建阶段不访问此小部件。其上的小部件 调用的setState()或markNeedsBuild()为: 叠加-[LabeledGlobalKey#27d99]状态: OverlyState#4aeab(条目:[OverlyEntry#3c67c(不透明:真; maintainState:false),OverlyEntry#564f9(不透明:false; 维护状态:true),覆盖入口#7b46b(不透明:false;维护状态: false),OverlayEntry#81c9d(不透明:false;维护状态:true)])的 当前正在生成的小部件,当出现问题的调用时 制造地点:FutureBuilderState:_FutureBuilderState#66844


在尝试显示对话框之前,请确保您的小部件已完全构建

@override
void initState() {
  super.initState();

  WidgetsBinding.instance.addPostFrameCallback((_) {
    showDialog(
      // ...
    );
  });
}

谢谢。关于这个框架还有一些我不知道的地方。