繁体   English   中英

Flutter:我们可以使用 GetX 导航到 controller 内的其他屏幕吗?

[英]Flutter: Can we navigate to other screen inside controller using GetX?

我可以像下面的代码一样在 Getx controller 中使用Get.to(OtherScreen())吗?

class UserController extends GetxController{

  Future<void> loginWithEmailAndPassword(
      {@required String email, @required String password}) async {
    
      await _firebaseAuth.signInWithEmailAndPassword(
        email: email.toLowerCase(),
        password: password,
      ).then((credential){
        Get.to(OtherScreen()); // Can I use this inside controller?
      });
  }
}

答案是可以的。 只需在您的方法中传递构建context ,然后使用导航路线

Future<void> loginWithEmailAndPassword(
  {@required String email, @required String password,@required BuildContext context}) async {

  await _firebaseAuth.signInWithEmailAndPassword(
    email: email.toLowerCase(),
    password: password,
  ).then((credential){
    Navigator.push(
    context,
    MaterialPageRoute(
      builder: (_) => OtherScreen(),
    ),; // Can I use this inside controller?
  });
}

是的,您可以在 controller 文件中导航,只需替换

Get.to(OtherScreen());

Get.to(()=> OtherScreen());

两者都工作,但第二个是使用 Getx 导航的正确语法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM