这是我的viewmodel类
class HomeFeedViewModel( val applicationContext: Context, val repo: repository) : ViewModel() {
lateinit private var homeView: HomeView }这是我的主视图界面:
interface HomeView {
fun OnSuccessLoadFeed(
showPostBean: ArrayList<Data_model>,
lastPage: String,
currentPage: String
)
fun onSuccessNoContent(msg: String)
fun onSuccessLocation(userBean: Data_model)
fun onSuccessLikePost(likePostBean: Data_model)
}这是接口的store对象的模块类:-
@Module
@InstallIn(SingletonComponent::class)
abstract class InterfaceModule {
@ExperimentalPagingApi
@Binds
abstract fun getHomeView(fragHome: Frag_home): HomeView
@ExperimentalPagingApi
@Binds
abstract fun getDetailPostview(detailPost: Detail_post): DetailPostview
}dagger-hilt的所有设置都已完成,并且还在应用程序类中提供了@HiltAndroidApp注释
发布于 2021-09-09 07:18:41
这里有几个问题:
首先:你不能现场注入一些东西到你的视图模型中。只允许构造函数注入。为此,您必须对视图模型进行以下修改:
@HiltViewModel
class HomeFeedViewModel(
@ApplicatonContext private val applicationContext: Context,
private val repo: repository
) : ViewModel()第二:你的HomeView不能被注入到你的视图模型中,因为它依赖于一个Frag_Home作为它的“基类”。如果你想在视图模型中注入HomeView,你必须改变你的依赖关系:
@Module
@InstallIn(SingletonComponent::class)
object Module {
@ExperimentalPagingApi
@Binds
// here you need some Implementation of HomeView to provide it to your singleton graph
fun getHomeView(homeViewImpl: HomeViewImpl): HomeView
}https://stackoverflow.com/questions/69069453
复制相似问题