这是我尝试使用的 MutableStateFlow 值:
val songList: MutableStateFlow<MutableList<Song>> = MutableStateFlow(arrayListOf())
我需要观察上面 MutableList 上的更改(在 add、removeAt 等方法之后),但无法实现这一点。我的猜测是,因为只有列表的元素发生变化,而不是列表本身发生变化,所以不会触发收集方法。
如果可能的话,如何使用 StateFlow 实现这一目标?如果不是,正确的做法是什么?
请注意,我需要 arrayListOf() 的初始值,因此 LiveData 对我来说可能不够。
在您的视图模型中:
val songList: MutableStateFlow<MutableList<Song>> = MutableStateFlow(emptyList()) // modified
fun add(song: Song) {
songList.update {
songList.value.toMutableList().apply { this.add(song) }
}
}
在可组合项中:
val songs = yourViewModel.songList.collectAsStateWithLifecycle()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)