Flutter:对话框无法通过 PopupMenuItem 点击工作

Has*_*med 12 dialog flutter flutter-dialog

    showMenu(
      context: context,
      position: RelativeRect.fromLTRB(5000, appBar.preferredSize.height + statusBarHeight!, 0.0, 0.0),
      items: [
        PopupMenuItem(
          child: Text('Cancel'),
          value: 0,
          onTap: () {
            cancelDialog();
          },
        ),
      ],
    );
Run Code Online (Sandbox Code Playgroud)
  cancelDialog() {
    return () {
      showDialog(
        context: context,
        builder: (BuildContext context) => OrderCancel(order!.orderId!),
      );
    };
  }
Run Code Online (Sandbox Code Playgroud)

使用以前的代码无法打开cancelDialog 。但它可以通过单击另一个按钮正确打开

小智 6

尝试这个

onTap: () {
           Future.delayed(
                  Duration.zero,
                  () => cancelDialog();
           )
          },
Run Code Online (Sandbox Code Playgroud)


小智 0

您可以按照以下步骤进行检查:

  1. 为了进行调查,我们需要一个最小的可运行复制作为单个文件,以便我们只需将代码复制到新项目的 lib/main.dart 中并运行即可复制

  2. 不幸的是,如果没有更多信息,我们不确定如何解决此问题。因此,我们暂时不情愿地关闭这个错误。如果您有任何更多信息给我们,请随时对该错误发表评论;我们将立即重新开放!感谢您的贡献。

  3. 您的 itemBuilder 函数不会返回任何内容。它缺少 return 关键字。