Tuba Kesten
01/28/2021, 6:26 PMLoginViewModel() {
private val _sessionUser = MutableLiveData<SessionUser>()
val sessionUser: LiveData<SessionUser>
get() = _sessionUser
fun changeSessionUserValue() {
_sessionUser.value = ....
}
}
@composable
OuterComposable(){
val currentSessionUser: SessionUser? by loginViewModel.sessionUser.observeAsState()
Timber.d("Heyyooo!")
NavHost(...) {
....,
composable(route) { InnerComposable(loginViewModel) }
}
....
}
@composable
InnerComposable(loginViewModel) {
....
NavHost(...) {
....,
composable(rt) { InnerInnerComposable(loginViewModel) }
}
}
@composable
InnerInnerComposable(loginViewModel) {
Button(onClick = loginViewModel.changeSessionUserValue())
}
Hi guys, I have a question related to observing mutable live data. When the activity created, outerComposable is called and "Heyyooo!"
is logged. After, the user clicks to the button in InnerInnerComposable, changeSessionUserValue is called. However the observed sessionUser in OuterComposable is not triggered so that Heyyooo!
is not logged on screen again after button click. Any idea why I can't trigger observeAsState
? Thanks🤗Leland Richardson [G]
01/28/2021, 7:03 PMcurrentSessionUser
is read. So if you put print(currentSessionUser)
for instance right next to Timer.d("Heyyooo!")
, then it should trigger whenever the currentSessionUser
changes.