使用 TextEditingController 可观察文本永远不会在 init onInit ever() 内部改变?
using TextEditingController observable text never change inside init onInit ever()?
我正在使用 GetX。我需要在用户键入一个字母后将其与一个对象相关联。但是问题是当我在控制器内部的 onInit function 中使用 ever function 时,没有发生任何变化。所以 even 函数 从未实现。
控制器Class代码为:
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();
}
}
我认为你需要补充:
emailEditionController.value.text.obs
用你曾经的方法。
onInit
当您的 controller
仅获得一次 initialize
时触发,直到您 force
它或 reinitialize
您的 [=13] 才会再次调用=].所以把你的功能放在它外面并尝试使用下面的代码:
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);
}
}
在 TextField 端
TextFormField(
controller: cont.emailEditionController.value,
onChanged: (val){
cont.ever(val);
},
)
我正在使用 GetX。我需要在用户键入一个字母后将其与一个对象相关联。但是问题是当我在控制器内部的 onInit function 中使用 ever function 时,没有发生任何变化。所以 even 函数 从未实现。
控制器Class代码为:
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();
}
}
我认为你需要补充:
emailEditionController.value.text.obs
用你曾经的方法。
onInit
当您的 controller
仅获得一次 initialize
时触发,直到您 force
它或 reinitialize
您的 [=13] 才会再次调用=].所以把你的功能放在它外面并尝试使用下面的代码:
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);
}
}
在 TextField 端
TextFormField(
controller: cont.emailEditionController.value,
onChanged: (val){
cont.ever(val);
},
)