Reputation: 110
I want to use LoginController token value inside userController to get the authToken which is an obs value but the value I am getting inside userController is non updated(i.e null which is initially set value).
LoginController
final token = "".obs;
isLoggedIn()async{
var storageToken = await _storage.read(key: "token");
token (storageToken);
print(token.value) //gives a value
}
UserController
var loginController = Get.put(LoginController());
home()async{
var token = loginController.token.value
print(token) // gives empty string
}
Upvotes: 1
Views: 506
Reputation: 676
You have to update
token in LoginController
by using update()
.
final token = "".obs;
isLoggedIn()async{
var storageToken = await _storage.read(key: "token");
token (storageToken);
print(token.value) //gives a value
update(); // <-----ADD THIS..
}
Happy Coding!!
Upvotes: 1
Reputation: 644
The reason for this is because you initialized again your LoginController by putting this code Get.put(LoginController())
on UserController.
You can approach this in two ways on your UserController:
var loginController = Get.find<LoginController>();
var token = loginController.token.value;
Or
var token = Get.find<LoginController>().token.value;
Upvotes: 1