繁体   English   中英

在 getx 对话框中使用 getx obx 和 GetX 状态管理

[英]Using getx obx and GetX state management inside getx dialog flutter

我在我的应用程序中使用 Get 对话框,我想在我的对话框小部件中使用 GetX 状态管理,例如我的对话框中有复选框,我想用 GetX 更新它的状态但是当我在我的内部使用GetX<AppController>()时获取对话框我遇到了以下错误

您应该只对将要更新的特定小部件使用 GetX 或 Obx。 如果您看到此错误,您可能没有将任何可观察变量插入 GetX/Obx 或将它们插入到 GetX 认为适合更新的范围之外(例如:GetX => HeavyWidget => variableObservable)。 如果您需要更新父小部件和子小部件,请将每个小部件包装在 Obx/GetX 中。 这是示例代码:

Get.dialog(
      Dialog(
        child: Flexible(
            child: GetX<AppController>(
              init: appController,
              builder: (val){
                return CheckboxListTile(
                  title: Text("Power off computer"),
                  contentPadding: EdgeInsets.zero,
                  value: appController.powerOffRaspberry,
                  onChanged: (newValue) {
                    appController.powerOffRaspberry = !appController.powerOffRaspberry;
                  },
                  controlAffinity: ListTileControlAffinity.leading, //  <-- leading Checkbox
                );
              },
            )
        ),
      ),

    )

使appController.powerOffRaspberry可观察:

final powerOffRaspberry = false.obs; 

CheckboxListTile更新为:

CheckboxListTile(
              title: Text("Power off computer"),
              contentPadding: EdgeInsets.zero,
              value: appController.powerOffRaspberry.value,
              onChanged: (newValue) {
                appController.powerOffRaspberry.value = !appController.powerOffRaspberry.value;
              },
              controlAffinity: ListTileControlAffinity.leading, //  <-- leading Checkbox
            )

暂无
暂无

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

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