繁体   English   中英

是否可以从另一个 GetxController 访问 GetxController 值? Flutter 获取 Package

[英]Is it possible to access GetxController value from another GetxController? Flutter Get Package

我是 Flutter 的新手,所以使用 GetX https://pub.dev/packages/get

我是否能够从 controller 中的“另一个 controller 访问值?

它们都将被初始化,但我不想在屏幕/小部件/处理程序等处传递“ id ”,我只想在 controller 到 controller 之间进行(如果可能的话)

这是一个例子

  1. 这是我的第一个 controller

    class firstController 扩展 GetxController { var id = 1; }

  2. 这是我的第二个 controller 我想从firstController访问 id

    class secondController 扩展 GetxController { var mappedIdFromFirstController = 1; }

我知道这听起来很傻,但我喜欢探索事物(笑)

先感谢您!

如果您的意思是直接从另一个 controller class 访问一个 controller,那么可以。

class FirstController extends GetxController {
  int id = 1;
}

class SecondController extends GetxController {
  int idFromFirstController = Get.find<FirstController>().id;

  @override
    void onInit() {
      super.onInit();
      debugPrint('$idFromFirstController'); // prints 1
    }
}

您唯一需要确保的是首先初始化依赖项。 因此,使上述示例工作的一种方法是在 main.xml 中初始化两者。

void main() {
  Get.put(FirstController()); // make sure this is first
  Get.put(SecondController());
  runApp(MyApp());
}

是的,你可以这样做:

class yourWidget extends StatelessWidget{
     FirstController fCTRL = Get.put(FirstController());
     SecondController sCTRL = Get.put(SecondController());
     //now you can have 
     print(fCTRL.id);  //1
     print(sCTRL.something);
}

暂无
暂无

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

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