Skip to content

同一个 NavController 被里外两层 NavHost 设置图,导致系统在没来得及初始化好 ViewModelStore 就被二次 setGraph,引发异常。

分别记住两个 NavController,别拿同一个 controller 用两次 NavHost

改动思路

  1. 去掉你现在 AuthNavHost 参数里的 NavHostController,改为内部自己 val authNavController = rememberNavController()
  2. RootNavHost 中,给 "auth" 这个 composable 调用 AuthNavHost(...) 时,不再传入 NavHostController,只传一个登录成功的回调即可。

这样外层的 navController(用来跳 “auth” -> “main”)和内层的 authNavController(用来跳登录页、注册页)就互相独立