Flutter 有没有办法获取正在推送的路由的上下文以显示其中的snackbar?

Flutter 有没有办法获取正在推送的路由的上下文以显示其中的snackbar?,flutter,dart,Flutter,Dart,我有一个屏幕,可以弹出所有路线并推送一条新路线。在这个即将推出的新屏幕上,我想显示一个snackbar,但我无法让它工作。 还有一部分应用程序,我需要做一些类似的事情,但不是弹出所有的路线。 这就是我目前正在尝试的方式,但我认为它不起作用,因为我没有使用新推屏的上下文: if (something) { Navigator.pushNamedAndRemoveUntil( context, searchRoute, (_

我有一个屏幕,可以弹出所有路线并推送一条新路线。在这个即将推出的新屏幕上,我想显示一个snackbar,但我无法让它工作。 还有一部分应用程序,我需要做一些类似的事情,但不是弹出所有的路线。 这就是我目前正在尝试的方式,但我认为它不起作用,因为我没有使用新推屏的上下文:

if (something) {
        Navigator.pushNamedAndRemoveUntil(
          context,
          searchRoute,
          (_) => false,
        );

        final snackbar = SnackBar(
          content: Text("Thing done successfully!"),
          backgroundColor: Colors.green[700],
        );

        Scaffold.of(context).showSnackBar(snackbar);
        return true;
      } else {
        return false;
      }

这就是为什么我想知道,当我用导航器按路线时,是否有办法获取路线的上下文,这样我就可以使用它来正确显示snackbar。

你必须在类中使用
GlobalKey
,声明
\u scaffoldKey

final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();
以后用,

_scaffoldKey.currentState.showSnackBar(snackbar);
希望它能起作用

_scaffoldKey.currentState.showSnackBar(snackbar);