Refer to Jetpack Compose Navigation.
NavHost(navController = navController, startDestination = Screen.Home.route) { composable( "selectPhoto/{albumId}", arguments = listOf(navArgument("albumId") { type = NavType.StringType }) ) { backStackEntry -> backStackEntry.arguments?.getString("albumId")?.let { SelectPhotoScreen( // viewModel = hiltViewModel(), albumId = it) } }}
@Composablefun SelectPhotoScreen(viewModel: SelectPhotoViewModel = viewModel(), albumId: String) { Text("Album Id = $albumId")}
val albumId = ...navController.navigate("selectPhoto/$albumId")
Alternatively, you can also read compose navigation arguments via ViewModel's SavedStateHandle.
class SelectPhotoViewModel( savedStateHandle: SavedStateHandle): ViewModel() { val albumId = savedStateHandle.get<String>("albumId")}
References: