GetxController 结构体

Posted

技术标签:

【中文标题】GetxController 结构体【英文标题】:GetxController structure 【发布时间】:2021-10-21 11:43:42 【问题描述】:
class Controller extends GetxController 
  int currentIdx = ''.obs;
  void updateInt(int idx) 
    currentIdx = idx.obs;
  

这是我的控制器。现在我把这条线作为一个小部件来获取 idx 值并立即分配给 currentIdx 值:

Controller().updateInt(idx);

但 .obs 行在当前结构中会出错。

当我更换控制器时:

class Controller extends GetxController 
  RxInt currentIdx = 0.obs;
  void updateInt(RxInt idx) 
    currentIdx = idx;
  

这次是 Controller().updateInt(idx);给出错误。 (RxInt 不兼容 int 值)

我该如何处理?

【问题讨论】:

【参考方案1】:

你需要这样声明和使用:

RxInt currentIdx = 0.obs;
void updateInt(int id) 
    currentIdx.value = id;
  

【讨论】:

Obx(() => Text(Controller().currentIdx.toString())), 总是给出 0 结果。 如果您使用Controller(),请始终创建一个新实例。首先声明Controller controller = new Controller(),然后将值设置为controller.currentIdx。在小部件中,您必须调用 controller.currentIdx.value.toString()

以上是关于GetxController 结构体的主要内容,如果未能解决你的问题,请参考以下文章

[Windows内核分析]KPCR结构体介绍 (CPU控制区 Processor Control Region)

Flutter中GetX系列六--GetxController使用详情

如何使用 GetX 订阅另一个 Controller 中的更改?

未处理的异常:堆栈溢出,Flutter GetXController 正在初始化 2000 次

Flutter:Getx Controller中的异步函数在初始化时不起作用

学习:Tree Control