在实施Flutter 2.0路由后,不确定如何清除堆栈并路由到新页面。
以下代码不起作用:
Navigator.of(context).pushAndRemoveUntil(MaterialPageRoute(builder: (context) => SignInPage()), (route) => false);[VERBOSE-2:ui_dart_state.cc(186)] Unhandled Exception: 'package:flutter/src/widgets/navigator.dart': Failed assertion: line 3075 pos 7: '!hasPage || isWaitingForExitingDecision': A page-based route cannot be completed using imperative api, provide a new list without the corresponding Page to Navigator.pages instead.
发布于 2021-10-09 16:49:33
您可以使用rootNavigator: true来访问MaterialApp导航器。参见https://api.flutter.dev/flutter/widgets/Navigator/of.html。尝试下面的方法,它是有效的。
Navigator.of(context, rootNavigator:
true).pushAndRemoveUntil(MaterialPageRoute(builder: (context) =>
SignInPage()), (route) => false);发布于 2021-06-01 14:08:59
我认为您还需要传递根名称。
检查我的代码,希望它能帮助你
Navigator.pushAndRemoveUntil(context, MaterialPageRoute(builder: (BuildContext context) => SignInPage()), ModalRoute.withName('/'),发布于 2021-06-01 14:44:37
要完全删除堆栈,您应该使用PushReplacement。
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (context) => SigInPage()),
);https://stackoverflow.com/questions/67783401
复制相似问题