2017-09-03 6 views
0

J'essaie de revenir automatiquement à l'écran de mon menu après une connexion réussie et j'ai de la difficulté à générer une construction de widget et/ou un contexte. Je fais cela dans un Widget Stateless. Voici mon code. Je voudrais appeler la route après la dernière instruction d'impression ...Générer Flutter route après l'action?

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); 
    } 

Répondre

1

D'après ce que je comprends votre question, vous devez essentiellement configurer votre bouton Se connecter pour rediriger les utilisateurs vers où vous voulez qu'ils soient après signe réussi à

vous pouvez configurer votre appel onPressed comme suit, et vous devriez être bien d'ici.

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

Remarque que vous ne pouvez pas utiliser Navigator en dehors de votre méthode de construction, d'où vous devez toujours gérer les parties de navigation dans vos widgets. Cochez le commentaire sur cette réponse.

+1

Vous pouvez accéder au Navigateur aussi longtemps que vous le passez le 'contexte' de votre widget actuel:' onPressed:() => _handleSignIn (contexte) 'et ensuite utiliser ce contexte pour pousser une route vers le navigateur dans' _handleSignIn' – xqwzts