はじめに
こんかいはJetpack composeNavigationを使った遷移時にデータを渡すとき、ViewModel側で取得する方法を紹介していきます
本文
まず、遷移ロジックです
composable(
"${HogeDestionation.Hoge.route}/{hoge}",]
arguments = listOf(
navArgument("hoge") { type = NavType.StringType },
)
) {
HogeScreen()
}
internal fun NavController.navigateToHoge(hoge: String) {
navigate("${HogeDestination.Hoge.route}/$hoge")
}
次に受け取り側の処理です
ViewModel内に下記を記述します
val hoge = checkNotNull(savedStateHandle["hoge"])
こうすることでViewModel内でも遷移データを使うことができます
さいごに
備忘録としての役割が強いですが、どなたかのお役に立てれば幸いです