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 结构体的主要内容,如果未能解决你的问题,请参考以下文章