提问人:arun 提问时间:7/12/2023 最后编辑:arun 更新时间:7/12/2023 访问量:385
更新视图模型后,Compose UI 未更新状态
Compose UI not updating the state after updating the view model
问:
我正在尝试根据视图模型中的状态更改更新撰写 UI 视图,以下是我的代码 最初,我正在根据视图模型中的默认值对撰写逻辑处理进行分配和操作,一段时间后,我将进行 API 调用,我正在接收该值并更新 VM fn 中的状态值,但它没有反映 UI我已经分配了操作,请让我知道我错过了什么
**View Model code**
var classAccessedByRefId: MutableState<String> = mutableStateOf("")
// This is when I update the state once API is successful
fun updateClassAccessId(classRefId: String) {
classAccessedByRefId.value = classRefId
}
**Compose code**
@Composable
fun BookingListItemView(classViewModel: ClassViewModel){
val classAccessedByRefId: String = bookingViewModel.classAccessedByRefId.value
if(classAccessedByRefId.value.isNotEmpty()){
// Do some operation if the classAccessedByRefId has value
}
}
答:
0赞
zaid khan
7/12/2023
#1
@Composable
fun BookingListItemView(classViewModel: ClassViewModel){
LaunchedEffect(bookingViewModel.classAccessedByRefId.value){
if(!bookingViewModel.classAccessedByRefId.value.equals("")){
// Do some operation if the classAccessedByRefId has value
}
}
}
评论
0赞
Jason Capriotti
11/9/2023
这将有助于其他人解释为什么答案中的代码有效。
评论
remember
mutableStateOf
bookingViewModel.classAccessedByRefId.value
bookingViewModel.classAccessedByRefId.value.isNotEmpty()