如何在彼此内部使用 2 个 getx 控制器?

Posted

技术标签:

【中文标题】如何在彼此内部使用 2 个 getx 控制器?【英文标题】:how to use 2 getx controllers inside each other? 【发布时间】:2021-06-28 11:42:46 【问题描述】:

我想在彼此内部使用 2 个控制器,但问题是其中一个必须在另一个之前初始化。例如

class FirstController extends GetxController 
  SecondController _secondController = Get.find<SecondController>(); 

class SecondController extends GetxController 
  FirstController _firstController = Get.find<FirstController>();

我同时使用了 put 和 lazyPut,但对我没有任何帮助。有什么办法吗?

【问题讨论】:

这似乎是一个僵局。你到底想达到什么目的? 如果您的意思是直接从另一个控制器类访问一个控制器,那么可以。但显然不是同时 我要做的是根据用户在页面上的操作重置第 2 页中的值。例如,假设我要求用户在第 1 页中选择 x 或 y,在第 2 页中有一个选项可以将 x 或 y 计数器增加 1,x 的最大值为 3,最大值为因为 y 是 2。所以我要做的是重置计数器值,以便当用户更改 x 或 y 时,他将无法继续使用大于最大值的值。我希望我的解释清楚 从你目前所做的可以看出,你无法同时控制两者的死锁情况。从另一个控制器类直接访问一个控制器。我的意思是,您可以从一个控制器传递一些值,这些值可以由另一个控制器控制。 非常感谢!我设法通过删除变量并直接在方法中使用控制器来解决这个问题! 【参考方案1】:

所以我设法通过删除第一个控制器中第二个控制器的声明来解决这个问题,并在方法中使用它。

void myMethod()

Get.find<SecondController>().methodName();

【讨论】:

以上是关于如何在彼此内部使用 2 个 getx 控制器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GetX 使用 Firestore 流填充列表

如果我们在 GetX 上使用 bottomNavigationBar,如何使用内部导航

将 API 数据从类传递给 GetX 控制器

在渲染之前更新 getx 控制器中的值

在构建 GetX<LogoPickerController>(控制器:'LogoPickerController' 的实例,标签:null,有构建器,脏

Flutter GetX 为啥控制器在导航时没有自动删除