如何解决我可以在另一个 getx 控制器中使用 getx 控制器吗?
我正在使用 Get (getx) 包来管理我的应用程序的状态,并且我正在尝试在另一个应用程序中使用一个控制器。例如,我有一个类包含用于 Firebase 身份验证的方法
class FirebaseAuthController extends GetxController {
static FirebaseAuthController get to => Get.find<FirebaseAuthController>();
.....
Future<void> createUser(String email,String password) async {
try {
await _auth.createUserWithEmailAndPassword(
email: email,password: password);
} catch (e) {
...
}
}
...
...
}
我还有另一个控制器,它是与 UI 交互的 signUpController
class SignInController extends GetxController {
static SignInController get to => Get.find<SignInController>();
...
....
Future<void> clickSignInButton() async {
print(emailController.text);
print(passwordController.text);
if (formKey.currentState.validate()) {
try {
await FirebaseAuthController.to
.login(emailController.text,passwordController.text);
} catch (e) {
print(e);
}
}
}
}
当我尝试这样做时,它给了我一个错误
lib/screens/authentication_screens/controller/sign_up_controller.dart:56:37: Error: Getter not found: 'to'.
await FirebaseAuthController.to
知道可能是什么问题吗?
解决方法
是的,您可以在另一个控制器中使用一个控制器并使用它的变量并更新它
示例
class HomeController extends GetxController {
var home = '';
String userName = '';
updateName() {}
}
class LoginController extends GetxController {
HomeController homeController = Get.put(HomeController());
String email = '';
String password = '';
signin() {
email = homeController.userName;
homeController.updateName();
homeController.update();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。