Составление пунктов назначения из ViewModelAndroid

Форум для тех, кто программирует под Android
Гость
Составление пунктов назначения из ViewModel

Сообщение Гость »

Я использую библиотеку Compose Destinations для навигации (но этот вопрос на самом деле относится к любому способу навигации).
И я хочу избежать работы с навигацией в составных функциях, которые представляют мои экраны. Поэтому я хочу избавиться от такого кода в своих составных функциях:

Код: Выделить всё

@RootNavGraph(start = true)
@Destination
@Composable
fun Welcome(
navController: DestinationsNavigator,
viewModel: WelcomeViewModel = hiltViewModel()
) {
LaunchedEffect(key1 = true) {
viewModel.eventFlow.collect { event ->
when (event) {
is WelcomeViewModel.Event.NavigateToProfile -> {
navController.navigate(ProfileDestination)
}
/* other navigation events */
}
}
}
WelcomeView()
}
Итак, мой вопрос: как внедрить navController: DestinationsNavigator в некоторый класс (скажем, Navigator), который будет внедрен в мою ViewModel, поэтому что я могу осуществлять навигацию непосредственно из ViewModel. Примерно так:

Код: Выделить всё

@HiltViewModel
class WelcomeViewModel @Inject constructor(
private val navigator: Navigator
) : ViewModel() {

/* some variables */

fun onSomeAction() {
/* do some calculations */
navigator.navigateToProfile(param)
}

/* other functions */
}
Я пытался найти решение, но ничего не нашел.

Источник: https://stackoverflow.com/questions/781 ... -viewmodel

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