Routing Navigator.pop()未弹出最新路线
我试图构建一个流程,如果用户未登录,应用程序会将登录页面推送到堆栈上。一旦他们完成登录,它会弹出登录页面并返回主页 推送工作时,pop段不工作-我可以让pop返回值来推送,但我无法关闭/login路由。我错过什么了吗 主页 登录页面.dart 其结果是: 1.登录屏幕被按下 2.我可以登录 3.printI应该在我完成登录后弹出运行窗口 4.print_val返回true 5.流行音乐似乎不起作用 这是因为PushName隐藏当前视图以显示新视图 这意味着您的旧视图不再位于小部件树上。因此,用于执行Navigator.ofcontext的上下文不再存在 您可以改为将Navigator.ofcontext的结果存储在局部变量中。并重用它来调用pushNamed和pop 您使用的是Navigator.ofcontext,但您在使用它时没有任何上下文,因此它可能不会调用您期望的导航器。Routing Navigator.pop()未弹出最新路线,routing,dart,flutter,Routing,Dart,Flutter,我试图构建一个流程,如果用户未登录,应用程序会将登录页面推送到堆栈上。一旦他们完成登录,它会弹出登录页面并返回主页 推送工作时,pop段不工作-我可以让pop返回值来推送,但我无法关闭/login路由。我错过什么了吗 主页 登录页面.dart 其结果是: 1.登录屏幕被按下 2.我可以登录 3.printI应该在我完成登录后弹出运行窗口 4.print_val返回true 5.流行音乐似乎不起作用 这是因为PushName隐藏当前视图以显示新视图 这意味着您的旧视图不再位于小部件树上。因此,用于
class _HomePageState extends State<HomePage> with UserAccount {
@override
void initState() {
super.initState();
if (!isLoggedIn) {
print("not logged in, going to login page");
SchedulerBinding.instance.addPostFrameCallback((_) async{
var _val = await Navigator.of(context).pushNamed("/login");
print("I SHOULD HAVE POPPED");
print(_val);
Navigator.of(context).pop();
});
}
}
class _LoginPageState extends State<LoginPage> with UserAccount {
void _googleLogin() async {
await googleClient.doGooglesignIn();
Navigator.of(context).pop(true);
}
final navigator = Navigator.of(context);
await navigator.pushNamed('/login');
navigator.pop();