#android-jetpack-compose #dagger-hilt #koin
Вопрос:
Моя функция compose получает viewmodel в качестве параметра:
@Composable
fun Home(
viewModel: HomeViewModel = ViewModel()
) {
val viewState by viewModel.state.collectAsState()
}
}
Я хочу, чтобы ViewModel реализовал некоторый интерфейс и передал viewmodel self в качестве реализации :
interface SomeInterface{
val state: StateFlow<String>
}
class MainViewModel: ViewModel(),SomeInterface{
override val state: StateFlow<String>
get() = MutableStateFlow("")
}
@Composable
fun Home(
someInterface: SomeInterface
) {
val viewState by someInterface.state.collectAsState()
}
}
Как это сделать в Hilt или в Koin?
Комментарии:
1. Документация Android предлагает использовать
viewModel: HomeViewModel = hiltViewModel()
вместоviewModel: HomeViewModel = ViewModel()