2017-09-03 89 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