SAVEDSTATEHANDLE不包含导航参数
我正在尝试注入savedstatehandle
。我正在使用Koin,JetPack组成和导航。 我设法使它起作用,但我认为这不是正确的实例(我没有得到我的价值观)。
这是我到目前为止所做的:
设置参数:
private fun NavGraphBuilder.addDetails(
navController: NavHostController,
root: Screen
) {
composable(route = LeafScreen.Details.createRoute(root),
arguments = listOf(
navArgument("showId") { type = NavType.LongType }
)) {
DetailsScreen(navigateUp = navController::navigateUp)
}
}
定义我的ViewModel:
internal class DetailsViewModel(
val handle: SavedStateHandle,
private val getMovieDetailsUseCase: GetMovieDetailsUseCase
) : ViewModel()
定义我的组合:
@Composable
fun DetailsScreen(
navigateUp: () -> Unit
) {
DetailsScreen(
viewModel = getStateViewModel(),
navigateUp = navigateUp,
)
}
和我的模块:
val uiDetailsModules = module {
viewModelOf(::DetailsViewModel)
}
它运行,但showID
来自val showid = handle.get.get&lt&lt>(”( showid”)
为null。
I'm trying to inject SavedStateHandle
. I am using Koin, Jetpack Compose and Navigation.
I've managed to make it work, but I think it's not the right instance (I don't get my values).
This is what I do so far:
Setting the argument:
private fun NavGraphBuilder.addDetails(
navController: NavHostController,
root: Screen
) {
composable(route = LeafScreen.Details.createRoute(root),
arguments = listOf(
navArgument("showId") { type = NavType.LongType }
)) {
DetailsScreen(navigateUp = navController::navigateUp)
}
}
Defining my ViewModel:
internal class DetailsViewModel(
val handle: SavedStateHandle,
private val getMovieDetailsUseCase: GetMovieDetailsUseCase
) : ViewModel()
Defining my composable:
@Composable
fun DetailsScreen(
navigateUp: () -> Unit
) {
DetailsScreen(
viewModel = getStateViewModel(),
navigateUp = navigateUp,
)
}
And my modules:
val uiDetailsModules = module {
viewModelOf(::DetailsViewModel)
}
It runs but showId
from val showId = handle.get<Long>("showId")
is null.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论