I have this view model which is throwing error because SavedStateHandle
is empty.
class DetailViewModel(
savedStateHandle: SavedStateHandle,
private val repository: Repository
) : ViewModel() {
private val id: String = savedStateHandle.get<String>("id") ?: error("id must be available")
}
I have declared this viewmodel in koin module like this
viewModel { (savedStateHandle: SavedStateHandle) -> DetailViewModel(savedStateHandle, get()) }
I am injecting viewmodel in DetailScreen like
@Composable
fun DetailScreen(
detailViewModel: DetailViewModel = getStateViewModel(),
onBack: () -> Unit,
) {
And I am navigating to DetailScreen like
composable(
Screen.Detail.route,
arguments = listOf(
navArgument(Screen.Detail.NAV_ARG) {
type = NavType.StringType
}
)
) {
DetailScreen(
onBack = actions.goBack
)
}
Did I miss anything?