小编tal*_*aoz的帖子

JetpackCompose 导航嵌套图导致“ViewModelStore 应在 setGraph 调用之前设置”异常

我正在尝试将 Jetpack Compose 导航应用到我的应用程序中。

我的屏幕:登录/注册屏幕和底部导航栏屏幕(呼叫、聊天、设置)。

我已经发现最好的方法是使用嵌套图。

但我不断遇到ViewModelStore should be set before setGraph call例外。但是,我认为这不是正确的例外。

我的导航已经是最新版本了。可能我的嵌套图逻辑不正确。

要求:我希望能够从登录或注册屏幕导航到任何底部栏屏幕并反向导航

@Composable
fun SetupNavGraph(
    navController: NavHostController,
    userViewModel: UserViewModel
) {
    NavHost(
        navController = navController,
        startDestination = BOTTOM_BAR_GRAPH_ROUTE,
        route = ROOT_GRAPH_ROUTE
    ) {
        loginNavGraph(navController = navController, userViewModel)
        bottomBarNavGraph(navController = navController, userViewModel)
    }
}
Run Code Online (Sandbox Code Playgroud)

导航图.kt

fun NavGraphBuilder.loginNavGraph(
    navController: NavHostController,
    userViewModel: UserViewModel
) {
    navigation(
        startDestination = Screen.LoginScreen.route,
        route = LOGIN_GRAPH_ROUTE
    ) {
        composable(
            route = Screen.LoginScreen.route,
            content = {
                LoginScreen(
                    navController = navController,
                    loginViewModel = userViewModel …
Run Code Online (Sandbox Code Playgroud)

kotlin android-jetpack android-architecture-navigation android-jetpack-compose jetpack-compose-navigation

17
推荐指数
1
解决办法
1万
查看次数