如何在特定事件中清除ViewModel?我正在使用撰写导航。在单击“返回按钮”的时刻。我想重置ViewModel。但是如果我检查uiState,当我进入屏幕时。
1.准备-〉空闲(正确)-〉返回
1.(重新输入)空闲-〉返回
1.(重新输入)空闲-〉返回
我在'go back event'调用了这个函数,但它不清楚。
// ViewModel
fun clear() = viewModelScope.launch {
onCleared()
}
我也试过这个,但没有工作。
DisposableEffect(Unit){
onDispose {
viewModel.clear()
}
}
但是我不应该使用这个,因为数据应该在我下一次访问时保留(而不是返回),当用户返回时,数据应该被恢复。
有人说,我不需要管理ViewModel,导航会管理它。但它没有被清除。我用它来“返回”
navController.navigateToHome(
navOptions {
popUpTo(homeGraphRoutePattern)
}
)
这是错的吗?
1条答案
按热度按时间lymnna711#
Navigation处理ViewModel。并且Screen的导航范围错误。
之前:
之后: