Я использую koin для внедрения зависимостей в компонуемый файл. Я хочу использовать сохраненный дескриптор состояния и получать переданные аргументы непосредственно в моей ViewModel. По какой-то причине моя ViewModel всегда получает нулевые аргументы. Как вы можете видеть в приведенном ниже коде, я фактически использовал getstateviewmodel(), а также использую метод stateviewmodel внутри своего модуля. Любая помощь будет оценена
Моя навигация по компоновке:
@Composable
fun Navigation() {
val navController = rememberNavController()
NavHost(navController = navController, startDestination = Screen.Login.route) {
composable(route = Screen.Login.route) { navBackStackEntry ->
val viewModel : LoginViewModel = getViewModel()
loginScreen {
val userId = 2
navController.navigate(Screen.HomeScreen.route + "/$userId")
}
}
composable(
route = Screen.HomeScreen.route + "/{userId}",
arguments = listOf(navArgument("userId") {
type = NavType.IntType
})
) {navBackStackEntry ->
val viewModel: HomeViewModel = getStateViewModel()
Home(navBackStackEntry.arguments!!.getInt("userId"))
}
}
}
Модуль Koin:
val viewModelModule = module {
viewModel { (handle: SavedStateHandle) ->HomeViewModel(handle) }
viewModel { LoginViewModel() }
}
Код внутри модели представления:
class HomeViewModel (savedStateHandle: SavedStateHandle) : ViewModel() {
val id : MutableState = mutableStateOf(savedStateHandle["userId"]?:0)
}
Подробнее здесь: https://stackoverflow.com/questions/713 ... th-compose
Получение empy saveState в модели просмотра при использовании koin с компоновкой ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Обновление потока при использовании двух источников пейджинга с компоновкой
Anonymous » » в форуме Android - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-