Я использую Коин и Jetpack Compose. и когда я обновляю значение Stateflow, подписчики не будут информированы, и в композиционных функциях нет изменений.private val _audio = MutableStateFlow(Audio())
val audio: StateFlow get() = _audio
fun updateAudio(newAudio: Audio) {
Log.i(TAG, "updateAudio: ${audio.value}")
_audio.value = newAudio
Log.i(TAG, "updateAudio: ${audio.value}")
}
...
value of _audio.value changes, but subscribers are not notified
log:
updateAudio: Audio(id=-1, title=Dj Ess - Change My Wayz Mixxx, artist=, ...)
updateAudio: Audio(id=-1, title=lungskull - magic, artist=, ...)
< /code>
Часть композиционного фонда: < /p>
@Composable
fun PlayingTrackBottomBar(
onClick: (Audio) -> Unit = {},
playerServiceViewModel: PlayerServiceViewModel = koinViewModel()
) {
val audio by playerServiceViewModel.audio.collectAsState()
...
}
< /code>
также подписан на изменение значения в самой модели представления < /p>
viewModelScope.launch {
audio.collect {
Log.i(TAG, "init: $it")
}
}
< /code>
Я пробовал разные варианты (живые данные, поток состояния, состояние), но ничто не помогло
, просмотреть журналы, я обнаружил, что значение Stateflow меняется, но ни один из подписчики уведомлены
Подробнее здесь: https://stackoverflow.com/questions/787 ... t-notified