Flutter GetX 在 Elevated Button onPressed 中调用更新的变量
Flutter GetX calling updated variables in Elevated Button onPressed
我是 Flutter 的新手,正在努力了解 GetX 的用法。我看过一些教程,并一直在网上搜索解决方案。我试图禁用一个按钮,直到 2 个变量变为真。在我的控制器中,我有一个方法可以用来检查两个变量,这些变量又会更改我在另一个文件中使用的 bool。我似乎无法在 elevatedbutton 小部件中找到使用 Obx() 方法的合适位置。
class RegistrationController extends GetxController {
final readTerms = false.obs;
final readPrivacy = false.obs;
final enableIntroButton = false.obs;
void isIntroButtonDisabled() {
if (readTerms.value && readPrivacy.value) {
enableIntroButton.value = true;
debugPrint('Button is now enabled');
}
}
}
在我的启动屏幕中,我在 class 的顶部创建了我的控制器实例以供使用,在我的 ElevatedButton 小部件中,我想出了如何在 child 上使用 Obx:属性 但同样的技术似乎在 onPressed 部分不起作用
ElevatedButton(
child: Obx(() => regController.enableIntroButton.value
? Text(
'Let\'s Get Started',
style: TextStyle(fontSize: 20),
)
: Text('Read Terms & Privacy First')),
onPressed: () => regController.enableIntroButton.value
? null
: Get.to(() => PhoneRegistrationScreen()),
小部件的其余部分是样式,所以我没有包含它。
任何帮助都会很棒。我刚刚学习完有状态小部件和使用 setState 哈哈。所以现在发现了 GetX,我正在尝试重新学习状态管理。
因此,经过反复试验和更多在线搜索后,我意识到我需要澄清 regController.value 等于 false 或 true 而不是仅仅声明变量。
这就是我所拥有的
onPressed: () => regController.enableIntroButton.value
? null
: Get.to(() => PhoneRegistrationScreen()),
这就是我需要做的...
onPressed: () => regController.enableIntroButton.value == false
? null
: Get.to(() => PhoneRegistrationScreen()),
尽管我尝试删除子项上方的 Obx() 方法:属性 但它似乎不像 onPressed 那样工作:属性 所以我将其保留原样。
我是 Flutter 的新手,正在努力了解 GetX 的用法。我看过一些教程,并一直在网上搜索解决方案。我试图禁用一个按钮,直到 2 个变量变为真。在我的控制器中,我有一个方法可以用来检查两个变量,这些变量又会更改我在另一个文件中使用的 bool。我似乎无法在 elevatedbutton 小部件中找到使用 Obx() 方法的合适位置。
class RegistrationController extends GetxController {
final readTerms = false.obs;
final readPrivacy = false.obs;
final enableIntroButton = false.obs;
void isIntroButtonDisabled() {
if (readTerms.value && readPrivacy.value) {
enableIntroButton.value = true;
debugPrint('Button is now enabled');
}
}
}
在我的启动屏幕中,我在 class 的顶部创建了我的控制器实例以供使用,在我的 ElevatedButton 小部件中,我想出了如何在 child 上使用 Obx:属性 但同样的技术似乎在 onPressed 部分不起作用
ElevatedButton(
child: Obx(() => regController.enableIntroButton.value
? Text(
'Let\'s Get Started',
style: TextStyle(fontSize: 20),
)
: Text('Read Terms & Privacy First')),
onPressed: () => regController.enableIntroButton.value
? null
: Get.to(() => PhoneRegistrationScreen()),
小部件的其余部分是样式,所以我没有包含它。
任何帮助都会很棒。我刚刚学习完有状态小部件和使用 setState 哈哈。所以现在发现了 GetX,我正在尝试重新学习状态管理。
因此,经过反复试验和更多在线搜索后,我意识到我需要澄清 regController.value 等于 false 或 true 而不是仅仅声明变量。
这就是我所拥有的
onPressed: () => regController.enableIntroButton.value
? null
: Get.to(() => PhoneRegistrationScreen()),
这就是我需要做的...
onPressed: () => regController.enableIntroButton.value == false
? null
: Get.to(() => PhoneRegistrationScreen()),
尽管我尝试删除子项上方的 Obx() 方法:属性 但它似乎不像 onPressed 那样工作:属性 所以我将其保留原样。