我需要获取我当前的路线名称。我用 GlobalKey
创建 navigatorSevice
相反 Navigator.of(context)
在每一页。所以我创建了 navKey
:
class Keys {
static final GlobalKey<NavigatorState> navKey = GlobalKey<NavigatorState>();
}
当我想重定向到另一个页面时,我会写 Keys.navKey.currentState.pushNamed()
或 pushReplacementNamed
或其他一些方法。我想知道我在 Interceptor 中的当前路线,在那里我没有上下文。
最佳答案
您已经可以从 GlobalKey<NavigatorState>()
访问 BuildContext .
这里 - navKey.currentContext
,像这样插上 - ModalRoute.of(navKey.currentContext).settings.name
.
但这会失败,我建议制作 navKey
属性 setter/getter 。你可以这样做..
final App = Helper.I;
class Helper {
static Helpers get I => Helpers._();
Helpers._();
GlobalKey<NavigatorState> get navKey => GlobalKey<NavigatorState>();
BuildContext get context => navKey.currentContext;
double get height => MediaQuery.of(context).size.height;
double get width => MediaQuery.of(context).size.width;
}
这样,您始终可以在应用程序的任何位置(甚至在您的业务逻辑中)访问 BuildContext。用法 -
App.context
或 App.width
(对于设备宽度)
关于flutter - 如何获取当前路线的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59250733/