Hilt with Jetpack Compose Navigation

Viewed 1170

I checked this info https://developer.android.com/jetpack/compose/libraries#hilt-navigation how to inject ViewModel to a compose screen.

For now I implemeted like this for my test app:

NavHost(
    navController = navController,
    startDestination = startDestination,
    modifier = modifier
) {
    composable(Screen.Topics.name) {
        val parentEntry = remember { navController.getBackStackEntry(Screen.Topics.name) }
        val topicsViewModel = hiltViewModel<TopicsViewModel>(parentEntry)
        TopicsScreen(
            topicsViewModel = topicsViewModel,
            openDrawer = openDrawer,
            navigateToTopicDetails = { topic -> actions.navigateToTopicsDetails(topic) }
        )
    }
    ...

Is there will be any difference if I use

val parentEntry = remember { navController.getBackStackEntry(Screen.Topics.name) }
val topicsViewModel = hiltViewModel<TopicsViewModel>(parentEntry)

or just

val topicsViewModel = hiltViewModel<TopicsViewModel>()

I guess first one is needed only if we use nested graphs and we want to get ViewModel for specific graph scope https://developer.android.com/jetpack/compose/navigation#nested-nav

So in my case the scope is the same for both methods if I don't use nested graphs?

So can I just use hiltViewModel<TopicsViewModel>() in my case?

0 Answers
Related