【发布时间】:2021-10-07 08:13:35
【问题描述】:
我正在尝试学习jetpack compose。我被 ViewModel 卡住了。
我有一个视图模型
class DataViewModel: ViewModel() {
//the list of live data
var listData = mutableListOf<Data>()
//initialize the viewmodel
init {
viewModelScope.launch {
//do the network call (this is working ok)
val data = fetchData()
data.forEach {
listData.add(it)
//print the list of data, this is working fine
println("listData")
}
}
}
因此,获取数据并将其放入 dataList 工作正常。但不,我想在我的屏幕上显示数据。我做了一个可组合的
@Composable
//pass in the viewmodel
fun DataScreen(model:DataViewModel = viewModel()){
println("model.listData")
this return an empty list ?
Column{
model.listData?.forEach { item ->
Text("${item}")
}
}
}
在我的屏幕上没有任何反应,因为它是可组合物中的一个空列表。 如何从 ViewModel 中获取列表?
【问题讨论】:
-
为您的列设置修饰符
Modifier.fillMaxSize() -
我从视图模型中得到的列表是空的,所以我认为这不会有什么不同
标签: android kotlin android-jetpack-compose android-jetpack