Flutter 颤振/飞镖未等待响应

Flutter 颤振/飞镖未等待响应,flutter,dart,Flutter,Dart,我有一个警报对话框,返回true或false(如果单击OK或Cancel)。调用时,立即分配null,代码继续(尽管方法正在等待…等待) 我错过了一些明显的东西,但看不见 这是警报代码 static choiceAlert(BuildContext context, String _message) { AlertDialog alert = AlertDialog( title: Text('Alert!'), content: SingleChildScrollView( c

我有一个警报对话框,返回true或false(如果单击OK或Cancel)。调用时,立即分配null,代码继续(尽管方法正在等待…等待)

我错过了一些明显的东西,但看不见

这是警报代码

static choiceAlert(BuildContext context, String _message) {
AlertDialog alert = AlertDialog(
  title: Text('Alert!'),
  content: SingleChildScrollView(
    child: ListBody(
      children: <Widget>[Text(_message)],
    ),
  ),
  actions: <Widget>[
    FlatButton(
      onPressed: () => Navigator.pop(context, true),
      child: Text('OK'),
    ),
    FlatButton(
      onPressed: () => Navigator.pop(context, false),
      child: Text('Cancel'),
    ),
  ],
);
showDialog(
  context: context,
  barrierDismissible: false,
  builder: (BuildContext context) {
    return alert;
  },
);
因此,在调试会话中,我看到null分配给_areYouSure,因此条件_areYouSure==true永远不会为true

我本以为代码会在
bool\u areYousure=
等待。。。因为它被标记为等待?是的,bool首先在内存中创建,并分配为null,但为什么不从行的“我的警报”对话框返回到它

onPressed: ()=> Navigator.pop(context, true),
我还有一个问题,如果有人想把它放进去,我是否应该用下面这句话来代替,因为他们似乎在做同样的事情,这句话被认为更正确

onPressed: ()=> Navigator.of(context, rootNavigator: true).pop(context, true),

感谢您的时间和帮助

如何按如下方式重新构造代码

  static choiceAlert(BuildContext context, String _message) {    
      return showDialog(
    context: context,
    child: AlertDialog(
            .....
        child: ListBody(...)));
  }

好的,非常感谢。如果您能分享一下我的代码出错的地方,您的问题是无法返回
showDialog
。非常好,谢谢。我可以看到您的代码更像“颤振”,并遵循错误。不客气:)
  static choiceAlert(BuildContext context, String _message) {    
      return showDialog(
    context: context,
    child: AlertDialog(
            .....
        child: ListBody(...)));
  }