我有一个redirectMain()
方法,该方法应该清空Navigator
堆栈并重定向到主屏幕。
它看起来像这样:
Future<dynamic> redirectMain() {
return GlobalService.navigatorKey.currentState.pushNamedAndRemoveUntil("/", (_) => false);
}
我从一个answer那里得到了“在应用栏上轻按删除后退按钮”
我使用以下命令初始化导航键:
static final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
问题是:仅在Navigator
堆栈中只有一条路由时,它才起作用。如果还有更多内容(在两个屏幕或更多屏幕之间导航),我将收到以下异常:
'package:flutter / src / widgets / navigator.dart':断言失败:行 1910年位置14:'removedRoute.overlayEntries.isNotEmpty':不正确。
我不能使用pushReplacementNamed
,因为它不会完全清空Navigator
堆栈。