我使用刀柄。 我有一个接口,但我有两个实现它们的类。 我需要在 ViewModels 中实现不同的 @Bind 接口。 请帮帮我? 创建自定义组件?或使用自定义范围?
答案 0 :(得分:2)
您提供的给定代码会有所帮助,但让我们假设:
saveCanvas = async (call_back_) => {
const FlowState = JSON.parse(sessionStorage.getItem('FLOWSTATE'))
...
...
await html2canvas(div).then((screenshot) => {
...
...
sessionStorage.setItem('FLOWSTATE', JSON.stringify(FlowState))
})
}
}
interface YourInterface {}
class MyFirstClassImpl @Inject constructor() : YourInterface
class MySecondClassImpl @Inject constructor() : YourInterface
@Module
@InstallIn(SingletonComponent::class)
inteface YourClassModule {
@Binds
@MyFirstClass
fun provideMyFirstClass(class: MyFirstClassImpl): YourInterface
@Binds
@MySecondClass
fun provideMySecondClass(class: MySecondClassImpl): YourInterface
}
@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class MyFirstClass
@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class MySecondClass
这应该可以完成工作。