Is there a restriction for navigation hierarchies ...
# compose
n
Is there a restriction for navigation hierarchies in Compose? This code works as expected:
Copy code
@Composable
fun ApplicationRoot() {
    val navController = rememberNavController()
    MaterialTheme {
        NavHost(navController = navController, startDestination = "home") {
            composable("home") {
                HomeScreen()
            }
        }
    }
}

@Composable
fun HomeScreen(viewModel: ApplicationViewModel = viewModel()) {
    val applicationState by viewModel.applicationStateStore.observeAsState()
    ...
But if I refactor
applicationState
as a parameter then it doesn't work correctly, no recomposition happens if
viewModel.applicationStateStore
is modified:
Copy code
@Composable
fun ApplicationRoot(viewModel: ApplicationViewModel = viewModel()) {
    val applicationState by viewModel.applicationStateStore.observeAsState()
    val navController = rememberNavController()
    MaterialTheme {
        NavHost(navController = navController, startDestination = "home") {
            composable("home") {
                HomeScreen(applicationState)
            }
        }
    }
}

@Composable
fun HomeScreen(applicationState: ApplicationState) {
    ...
Thanks.
i
Are you using Navigation Compose 2.4.0-alpha05? This was definitely broken on older versions
n
I used an older version. I switched to 2.4.0-alpha05 but it didn't fix the problem.