如何使用房间的流列表更新 lazyColumn 的项目?

How to update lazyColumn's item using the Flow list from room?

如下代码所示,我得到了 list(type: FlowT>>),

如何使用它来更新 lazyColumn 的项目,以便当房间数据发生变化时,lazyColumn 会相应地更新项目?

非常感谢。

@Composable
fun SomeContent(context: Context) {
    // get the view model ref
    val viewModel: SomeViewModel =
        viewModel(factory = SomeViewModelFactory(Db.getInstance(context)))

    // get the list from room, it is a Flow list
    val list = viewModel.sumDao.getAllRows()

    LazyColumn(
    ) {
        // I need to use the list in below, but got errors, how to do?
        items(list.size) {
        SomeListItem(list[it])
        }
    }
}

您必须按照以下方式收集您的 FlowList

val list = viewModel.sumDao.getAllRows().collectAsState(initial = emptyList())

使用 itemsIndexed 代替项目

itemsIndexed(list) {idx, row -> SomeListItem(row)}

让我知道以上是否有效。

如果使用 vn1gam 的解决方案,可能需要做

itemsIndexed(list.value) {idx, row -> SomeListItem(row)}