是否可以从另一个 GetxController 访问 GetxController 值? Flutter 获取包
Is it possible to access GetxController value from another GetxController? Flutter Get Package
我是 Flutter 的新手,所以是 GetX https://pub.dev/packages/get
我能否从 控制器 中的“另一个控制器”访问值?
它们都将被初始化,但我不想在 screens/widget/handlers 等处传递“id”,我想在控制器之间进行仅(如果可能)
这是一个例子
这是我的第一个控制器
class firstController extends GetxController { var id = 1; }
这是我的第二个控制器,我想从 firstController
访问 id
class secondController extends GetxController { var copiedIdFromFirstController = 1; }
我知道这听起来很傻,但我喜欢探索事物(笑)
提前致谢!
是的,你可以这样做:
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);
}
如果您的意思是直接从另一个控制器访问一个控制器class,那么可以。
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());
}
我是 Flutter 的新手,所以是 GetX https://pub.dev/packages/get
我能否从 控制器 中的“另一个控制器”访问值?
它们都将被初始化,但我不想在 screens/widget/handlers 等处传递“id”,我想在控制器之间进行仅(如果可能)
这是一个例子
这是我的第一个控制器
class firstController extends GetxController { var id = 1; }
这是我的第二个控制器,我想从 firstController
访问 idclass secondController extends GetxController { var copiedIdFromFirstController = 1; }
我知道这听起来很傻,但我喜欢探索事物(笑)
提前致谢!
是的,你可以这样做:
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);
}
如果您的意思是直接从另一个控制器访问一个控制器class,那么可以。
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());
}