У меня в viewModel есть 2 stateFlow. Чтобы собрать их во фрагмент, мне нужно запустить сопрограммы 2 раза, как показано ниже:
lifecycleScope.launchWhenStarted {
stocksVM.quotes.collect {
if (it is Resource.Success) {
it.data?.let { list ->
quoteAdapter.submitData(list)
}
}
}
}
lifecycleScope.launchWhenStarted {
stocksVM.stockUpdate.collect {
log(it.data?.data.toString())
}
}
Если у меня больше stateFlow, мне придется соответственно запускать сопрограммы. Есть ли лучший способ обрабатывать несколько stateFlow в моем фрагменте / действии или где-то еще?
lifecycleScope.launchWhenStarted {}
, вы не можете простоstocksVM.quotes.collect{}
иstocksVM.stockUpdate.collect {}
только внутри него. - person che10   schedule 02.06.2021