GetxController obs其他控制器内的值



我想使用userController内的LoginController令牌值来获取authToken,authToken是一个obs值,但我在userController内获得的值是未更新的(即初始设置值为null(。

登录控制器

final token = "".obs;
isLoggedIn()async{
var storageToken = await _storage.read(key: "token");
token (storageToken);
print(token.value) //gives a value
}

用户控制器

var loginController = Get.put(LoginController());
home()async{
var token = loginController.token.value
print(token) // gives empty string
}

原因是您通过将此代码Get.put(LoginController())放在UserController上再次初始化了LoginController。

您可以在UserController上以两种方式处理此问题:

var loginController = Get.find<LoginController>();
var token = loginController.token.value;

var token = Get.find<LoginController>().token.value;

最新更新