在GetXController中,我需要一个名为isOK的变量,该变量不能被初始化,因为它用于确定小部件的 Select ,而我不希望在打开应用程序时进行任何 Select .

当变量被初始化时,我可以编写

color: c.isOK.value ? AppTheme.selected: Colors.transparent

但当它不是var isOK = Rx<Bool>; c.isOK.value带有错误的红色下划线:"没有为类型‘Type’定义getter‘值’".

如果是var isOk = Bool().obs;,则错误是"Conditions must have a static type of 'bool'".

遇到这个问题,你有什么解决办法吗?我考虑使用局部状态变量来管理 Select 并将其保存为全局变量,但我希望只使用全局变量. 谢谢

推荐答案

要使用GetX可观测对象,您需要将其定义为:

var isOK = true.obs;
//       OR
var isOK = RxBool(true);

这将自动为其提供RxBool类型.

对于您的情况,您需要将变量初始化为RxnBool.这个observable可以存储三个值:True、False和False.您可以在小部件树中传递判断,然后显示所需的.

您可以将RxnBool初始化为:

var isOK = RxnBool(null);

在需要时将值添加到变量中与RxBool相同.

isOK.value = false;
isOK.value = true;
isOK.value = null;

除此之外,如果您不想使用GetX,您可以始终使用一个可为空的,并判断值是否为空,然后在稍后使用之前对其进行初始化;

Bool? someVar = null;

Flutter相关问答推荐

关闭视频通话,相机仍在运行!(Flutter WebRTC)

如何使一个悬浮的appbar在flutter?

如何将 colored颜色 阴影作为默认容器 colored颜色 应用于自定义窗口小工具?

如何防止onTapCancel由子元素触发?

轻松本地化包翻译在底部导航栏项目标签Flutter 翼dart 中不起作用

从图标启动器打开时,VSCode未检测到Web设备

Flutter:我应该使用哪种应用内购买服务?

要禁用按钮上的通知声音,请点击Flutter

Flutter如何从深入嵌套的小部件中打开抽屉?

reactive_flutter_BLE - 应用找到设备但无法连接(并读取 BLE 数据)

如何从sibling ChildWidgetB 触发 ChildWidgetA 中的操作

Flutter ListView 在 Column 中工作但在 Row 中不工作

如何流畅切换画面?

Flutter Serverpod 在示例项目上返回 400 错误

如何在 Flutter 中创建 Facebook 创建帖子屏幕?

为什么 setState 不改变我的变量 Flutter?

在 flutter 中自定义 agora 视频通话 UI

我一直在try 创建按钮以导航到第二页,但不知何故 RaisedButton 功能无法正常工作

如何将图像网络装箱到具有边界半径的容器中

如何从 Firebase Firestore 中获取具有特定字段值的文档?