如何确保在第一个屏幕中的feedList列表在第二个屏幕中添加新的提要项后更新?我使用一个navController在两个屏幕之间导航,并使用ObjectBox作为数据库。
在我的应用程序中,第一个屏幕显示一个提要列表,第二个屏幕允许我添加一个新的提要项。当我在第二个屏幕上添加新的提要项并返回到第一个屏幕时,列表不包括新添加的项。我怀疑函数viewModel.onGetFeedList()没有在适当的时间执行,它也在LaunchedEffect中。
LaunchedEffect(key1 = Unit) {
vm.composeViewModel.onGetFeedList()
vm.composeViewModel.getFeedCollectionList()
}
为了提供一些上下文,我使用ObjectBox作为数据库,并设置了必要的实体、DAO和一个ViewModel来处理数据操作。
fun saveSingleRecord(modal: Feed): Long {
val obj = box().query(Feed_.mId.equal(modal.mId)).build()?.findUnique()
if (obj == null) {
box().put(modal)
return 1
} else {
obj.mId = modal.mId
obj.name = modal.name
obj.nepaliName = modal.nepaliName
obj.DMPercent = modal.DMPercent
obj.MEOrMIPerKg = modal.MEOrMIPerKg
obj.DCPPerKg = modal.DCPPerKg
obj.NDFPercent = modal.NDFPercent
obj.CaPerGram = modal.CaPerGram
obj.PPerGram = modal.PPerGram
obj.concentrate = modal.concentrate
obj.price = modal.price
obj.categoryId = modal.categoryId
obj.SN = modal.SN
box().put(obj)
Logger.log("AFTER EDIT = ${GsonUtils.toString(obj)}")
return 2
}
}
我想知道应该在何处以及何时执行viewModel.onGetFeedList(),以确保从第二个屏幕返回后,第一个屏幕显示更新后的提要列表。您能指导我如何正确地实现这一目标吗?
1条答案
按热度按时间hof1towb1#
用true代替unit。希望能帮上忙