I am using GetX. I need once the user type a letter i get this letter to associate it to an object. But the issues is when i use ever function inside onInit fuction inside the controller, there is no change happen. so the even function never implemented.
The Controller Class Code Is:
class RegistrationController extends GetxController {
// Email
late Rx<TextEditingController> emailEditionController;
Rx<Email>? email;
@override
void onInit() {
emailEditionController = TextEditingController().obs;
ever(
emailEditionController,
(_) {
print("\n checked \n");
return email = Email(email: emailEditionController.value.text).obs;
},
);
super.onInit();
}
}
CodePudding user response:
onInit fires when your controller gets initialize only for once that will not call again until you force it or reinitialize your controller. So put your functions outside of it and Try using code below :
class RegistrationController extends GetxController {
// Email
Rx<TextEditingController> emailEditionController = TextEditingController().obs;
Rx<Email>? email;
@override
void onInit() {
super.onInit();
}
ever(String val) {
print("\n checked $val\n");
return email?.value = Email(email: val); OR Email(email: emailEditionController.value.text);
}
}
On TextField Side
TextFormField(
controller: cont.emailEditionController.value,
onChanged: (val){
cont.ever(val);
},
)
CodePudding user response:
i think you need to add :
emailEditionController.value.text.obs
in your ever method.
