我有一个使用导航组件的单活动和多片段样式应用程序。
我正在使用Koin进行依赖注入。我希望按照干净架构的原则创建一个Navigator类。
这个假设的类看起来像:
class Navigator(private val navHostFragment: NavHostFragment)
{
fun toStudentsProfile():Unit
{
val action = HomeFragmentDirections.toStudentsProfile()
navHostFragment.findNavController().navigate(action)
}
fun toTeachersProfile():Unit
{
val action = HomeFragmentDirections.toTeachersProfile()
navHostFragment.findNavController().navigate(action)
}
}
我现在的问题是如何在Koin容器下创建这个功能?
val platformModule = module {
single { Navigator("WHAT CAN BE DONE HERE") }
single { Session(get()) }
single { CoroutineScope(Dispatchers.IO + Job()) }
}
此外,Koin组件将在navhostfragment准备好之前准备就绪,因此一开始无法满足依赖关系。
有没有一种方法可以向Koin提供一个类的实例,然后随后开始使用它?