【问题标题】:currentBackStackEntry arguments is null when launching the app启动应用程序时 currentBackStackEntry 参数为空
【发布时间】:2022-10-21 23:38:09
【问题描述】:

在撰写应用程序中,我正在尝试更新 currentBackStackEntry 的参数。这只是一个宠物项目。 我愿意:

navController.currentBackStackEntry?.arguments?.putParcelable(
    "comic",
    selectedComic
)

这只是一个宠物项目,我知道我可能应该使用空间来保留值并且只传递 id 和/或使用其他撰写导航库(如compose destinationsappyx)而不是通过这种方式传递 parcelables 但我想使用撰写导航保持简单。

问题是代码并不总是有效,我不明白为什么,当它第一次作为第一个目的地加载时 navController.currentBackStackEntry?.argumentsnull 所以代码不起作用。在导航到任何其他可组合后,如果我回到这个并且执行相同的代码,则参数不为空,并且该代码似乎总是有效。

关于我可以做的任何事情,以便在第一次运行应用程序时参数不为空?我也很想了解为什么会这样。在来这里询问之前,我一直试图找出发生了几天的事情。

【问题讨论】:

    标签: kotlin android-jetpack-compose android-jetpack-navigation


    【解决方案1】:

    您可以将我自己的实现用于 jetpack compose 导航: https://github.com/usmonie/compose_navigation_with_parcelable_arguments

    使用 rememberNavExtrasController 创建控制器,使用 NavExtrasHost 和 com.usmonie.compose.navigation.composable 来传递带有参数的包。

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 2019-03-07
      相关资源
      最近更新 更多