2017-09-03 48 views
0

我试图在成功登录后自动返回到我的菜单屏幕,并且无法生成Widget构建和/或上下文。我在无状态的widget中这样做。这是我的代码。我想打电话给最后的打印语句之后的路线......动作后产生颤振路线?

Future<Null> _handleSignIn() async { 
    try { 
     await _googleSignIn.disconnect(); 
     GoogleSignInAccount googleUser = await _googleSignIn.signIn(); 
     GoogleSignInAuthentication googleAuth = await googleUser.authentication; 

     print(googleAuth.idToken); 

     await FirebaseAuth.instance.signInWithGoogle(idToken: googleAuth.idToken, accessToken: googleAuth.accessToken); 


    } catch (error) { 
     print(error); 
    } 
    print("Let's Do This"); 
    print(_googleSignIn.currentUser.displayName); 
    print(FirebaseAuth.instance.currentUser); 
    } 

回答

1

从我的理解从你的问题,你基本上需要设置你的登录按钮,无论你想他们是之后的用户重定向成功登录

你可以设置你的onPressed电话如下,你应该罚款从这里:。

onPressed:() {_handleSignIn().whenComplete(()=>Navigator.of(context).pushNamed("/MyHome")); 
         } 

注意,你不能使用Navigator您的构建方法之外,因此你总是需要处理你的小部件中的导航部分。 查看对此答案的评论。

+1

只要您传递当前窗口小部件的'context':onPressed:()=> _handleSignIn(context)',就可以访问Navigator,然后使用该上下文将路由推送到' _handleSignIn' – xqwzts