我想更新資料庫中的資料并在螢屏上顯示更新的資料。但我不能這樣做。更新僅在重新啟動應用程式后發生。我究竟做錯了什么?。請幫忙
fun list(model: MyViewModel = viewModel()) {
val list = model.listToDo.observeAsState(listOf()).value
val grouped = list.groupBy { it.isFinished }
LazyColumn(contentPadding = PaddingValues(vertical = 8.dp)
, verticalArrangement = Arrangement.spacedBy(8.dp)
, ){
grouped.forEach { (initial, contactsForInitial) ->
stickyHeader {
Text(
"Section $initial",
Modifier
.fillMaxWidth()
.padding(8.dp)
)
}
items(contactsForInitial) { contact ->
card(contact, model = model)
}
}
}
}
視圖模型中的函式
fun update(task: ToDo){
viewModelScope.launch(Dispatchers.IO) {
repository.update(task)
}
}
道中的功能
@Update
fun update(task: ToDo)
視圖模型
class MyViewModel : ViewModel() {
private val repository = Repository.get()
val listToDo = repository.getListToDo()
fun delete(task: ToDo){
viewModelScope.launch(Dispatchers.IO) {
repository.delete(task)
}
}
fun insertToDo(task: ToDo){
repository.insertToDo(task = task)
}
fun update(task: ToDo){
viewModelScope.launch(Dispatchers.IO) {
repository.update(task)
}
}}
uj5u.com熱心網友回復:
你不是在觀察狀態。我認為這段代碼:
val list = model.listToDo.observeAsState(listOf()).value只拍攝流程的一個快照。像這樣嘗試:
val list by model.listToDo.observeAsState(listOf())
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/312857.html
標籤:安卓 科特林 android-jetpack-compose
上一篇:帶變數的注釋引數
下一篇:將3D網格點排序為3D網格單元
