2

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?

Vivart
  • 14,900
  • 6
  • 36
  • 74

0 Answers0