Составление пунктов назначения из 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
Ответить

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

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

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

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

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