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



我是Flutter的新手,GetX也是https://pub.dev/packages/get

我能从">另一个控制器";控制器内部

它们都将被初始化,但我不想通过">id";在屏幕/小部件/处理程序等,我想只在控制器到控制器之间进行(如果可能的话(

这里有一个的例子

  1. 这是我的第一个控制器

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

  2. 这是我的第二个控制器,我想从firstController访问id

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

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

提前谢谢!

如果您的意思是直接从另一个控制器类访问一个控制器,那么是的,您可以。

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中初始化两者。

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);
}

最新更新