[:white_check_mark: RESOLVED - Solution in thread!...
# compose
s
[ RESOLVED - Solution in thread!] Hello All, after updating to compose version
beta-08
&
Compose nav graph
dependencies. I’m not able to scope my
viewmodel
to the
nav graph component
🙇🏻‍♂️ Code sample in thread 👇
👍 1
Navgraph 👇
Copy code
@Composable
fun NavGraph(toggleTheme: () -> Unit) {
    val navController = rememberNavController()
    val actions = remember(navController) { MainActions(navController) }

    NavHost(navController, startDestination = Screen.Home.route) {
        composable(Screen.Home.route) {
            val viewModel: MainViewModel = viewModel(
                factory = HiltViewModelFactory(LocalContext.current, it)
            )
            HomeScreen(viewModel, actions)
        }

        composable(Screen.AddTask.route) {
            val viewModel = hiltNavGraphViewModel<MainViewModel>(backStackEntry = it)
            AddTaskScreen(viewModel, actions)
        }

        composable(Screen.AllTask.route) {
            val viewModel = hiltNavGraphViewModel<MainViewModel>(backStackEntry = it)
            viewModel.getAllTask()
            AllTaskScreen(viewModel, actions)
        }

        composable(
            "${Screen.TaskDetails.route}/{id}",
            arguments = listOf(navArgument(EndPoints.ID) { type = NavType.LongType })
        ) {
            val viewModel = hiltNavGraphViewModel<MainViewModel>(backStackEntry = it)

            val taskID = it.arguments?.getLong(EndPoints.ID)
                ?: throw IllegalStateException("'task ID' shouldn't be null")

            viewModel.findTaskByID(taskID)
            TaskDetailsScreen(viewModel, actions)
        }

        composable(Screen.Settings.route) {
            val viewModel = hiltNavGraphViewModel<MainViewModel>(backStackEntry = it)
            SettingsScreen(viewModel, actions)
        }
    }
}
Before updating my above code work fine. But now only the default screen is opening. When I try to navigate to other screens it crashed!
Step 1️⃣ After adding hilt compose dependency 👇
androidx.hilt:hilt-navigation-compose:1.0.0-alpha02
Step 2️⃣ I updated the code to below 👇
Copy code
@Composable
fun NavGraph(toggleTheme: () -> Unit) {
    val navController = rememberNavController()
    val actions = remember(navController) { MainActions(navController) }

    NavHost(navController, startDestination = Screen.Home.route) {
        // Home
        composable(Screen.Home.route) {
            val viewModel: MainViewModel = viewModel(
                factory = HiltViewModelFactory(LocalContext.current, it)
            )
            HomeScreen(viewModel, actions)
        }

        // Add Task
        composable(Screen.AddTask.route) {
            val viewModel = hiltViewModel<MainViewModel>(it)
            AddTaskScreen(viewModel, actions)
        }

        // All Task
        composable(Screen.AllTask.route) {
            val viewModel = hiltViewModel<MainViewModel>(it)
            viewModel.getAllTask()
            AllTaskScreen(viewModel, actions)
        }

        // Task Details
        composable(
            "${Screen.TaskDetails.route}/{id}",
            arguments = listOf(navArgument(EndPoints.ID) { type = NavType.LongType })
        ) {
            val viewModel = hiltViewModel<MainViewModel>(it)
            val taskID = it.arguments?.getLong(EndPoints.ID)
                ?: throw IllegalStateException("'task ID' shouldn't be null")

            viewModel.findTaskByID(taskID)
            TaskDetailsScreen(viewModel, actions)
        }

        // Settings
        composable(Screen.Settings.route) {
            val viewModel = hiltViewModel<MainViewModel>(it)
            SettingsScreen(viewModel, actions)
        }
    }
}
👍 1