首页 > 解决方案 > 后台进程无法从 Navigator 弹出() showDialog

问题描述

我正在尝试创建一个流程,我的应用程序将在一段时间内弹出一个 showDialog 框,然后仅在从在线资源接收到信息后才取消显示对话框。

我已经毫无问题地更改了一个全新的脚手架小部件,并且 navigator.pop(); 只是毫无问题地将我推回到以前的上下文中。

但是使用 showDialog 小部件我的 Navigator.of(context).pop(); 只触摸基本屏幕。

如果我有一个按钮,我知道如何关闭显示对话框,但同样的代码不起作用。

基本上上下文被传递到 Navigator.of(context).pop(); 行与 showDialog 框的上下文不同...而且我不知道为什么。

代码示例:

<Code that decides when to call myDialog>

myDialog(context);

<Other code in a decision-tree although in the same root function>

if (condition) {
  Navigator.of(context).pop();
}


  Future<void> myDialog(BuildContext context) async {
    return showCupertinoDialog(
      context: context,
      <Code that shows Body of dialog box>
    ),
  }

所以,是的,显然传入的上下文是错误的,但我不知道为什么。

标签: iosflutternavigatorshowdialog

解决方案


推荐阅读