Что плохого в том, чтобы обернуть NavHostController в класс-оболочку и внедрить его в систему внедрения зависимостей?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Что плохого в том, чтобы обернуть NavHostController в класс-оболочку и внедрить его в систему внедрения зависимостей?

Сообщение Anonymous »

Предположим, у меня есть класс

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

data class Navigator(val navController: NavHostController)
И я впрыскиваю его в монету/рукоять.

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

class MyViewModel(private val navigator: Navigator): ViewModel(){} // using koin
Преимущество –
Предположим, у меня есть

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

@Composable
fun HomeScreen(toSettings: () -> Unit)

fun NavGraphBuilder.home(toSettings: () -> Unit)

NavHost() {
home() { /* navigation logic */ }
}
и я тоже хочу перейти на экран профиля. Так что теперь мне придется поменять три места

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

@Composable
fun HomeScreen(toSettings: () -> Unit, toProfile: () -> Unit)

fun NavGraphBuilder.home(toSettings: () -> Unit, toProfile: () -> Unit)

NavHost() {
home(toSettings = {}, toProfile = {})
}
но если бы у меня был доступ в моей ViewModel, мне бы это не понадобилось. Я такого подхода не видел нигде. Что-то здесь не так

Подробнее здесь: https://stackoverflow.com/questions/786 ... jecting-it
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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