Получение empy saveState в модели просмотра при использовании koin с компоновкойAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Получение empy saveState в модели просмотра при использовании koin с компоновкой

Сообщение Anonymous »

Я использую 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»