```LoginViewModel() { private val _sessionUser...
# compose
t
Copy code
LoginViewModel() {
    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🤗
l
recomposition will only happen where
currentSessionUser
is read. So if you put
print(currentSessionUser)
for instance right next to
Timer.d("Heyyooo!")
, then it should trigger whenever the
currentSessionUser
changes.
👍 1