Jetpack Compose传递可选布尔参数导航触发异常问题排查
问题原因及解决办法
这个异常的核心是:你要跳转的目标页面路由不是当前所在NavGraph的直接子节点,和可选参数是否传递无关,下面是具体排查和修复方向:
检查导航图层级结构
确认SignUpVerificationPhoneCodeScreen对应的路由verification_phone_code_screen是否属于当前调用navigateIfNeeded时所在的NavGraph。如果它在某个嵌套的子NavGraph里,跳转时必须带上父导航图的路由前缀。比如父导航图路由是register_graph,正确的跳转路径应该是register_graph/verification_phone_code_screen?isRedirectFromLoginOrSplash=true,而不是直接写目标路由加参数。核对密封类的路由定义
检查你的RegisterScreen密封类中,SignUpVerificationPhoneCodeScreen的路由是否是完整路径。举个正确的嵌套路由例子:sealed class RegisterScreen(val route: String) { // 父导航图路由 object RegisterGraph : RegisterScreen("register_graph") // 子页面路由需要包含父图前缀 object SignUpVerificationPhoneCode : RegisterScreen("register_graph/verification_phone_code_screen") }跳转时直接使用密封类定义的完整路由,再拼接参数,避免手动写路由时出错。
确认跨导航图跳转的路径正确性
如果当前页面和目标页面属于不同的NavGraph(比如当前在登录图,目标在注册图),必须使用完整的路由路径(包含目标所在导航图的路由),不能只写目标页面的单独路由。
内容的提问来源于stack exchange,提问作者NewPartizal
相关产品推荐
相关产品推荐

