同一个 NavController 被里外两层 NavHost 设置图,导致系统在没来得及初始化好 ViewModelStore 就被二次 setGraph,引发异常。
分别记住两个 NavController,别拿同一个 controller 用两次 NavHost。
改动思路
- 去掉你现在
AuthNavHost参数里的NavHostController,改为内部自己val authNavController = rememberNavController()。 - 在
RootNavHost中,给"auth"这个 composable 调用AuthNavHost(...)时,不再传入NavHostController,只传一个登录成功的回调即可。
这样外层的 navController(用来跳 “auth” -> “main”)和内层的 authNavController(用来跳登录页、注册页)就互相独立。
