Dagger-Hilt中能否同时使用@Inject与@AssistedInject注入ViewModel?
问题解决方法
@Inject 和 @AssistedInject 是Dagger中互斥的构造函数注解,不能同时标注在同一个构造方法上,这是导致你报错的核心原因。
针对你需要注入SavedStateHandle的场景,Hilt已经提供了原生支持,不需要使用@AssistedInject实现,直接按以下方式修改代码即可:
@HiltViewModel class DaoViewModel @Inject constructor( private val repository: MoviesFavoritesRepository, private val state: SavedStateHandle ) : ViewModel() { // 原有业务逻辑无需修改 }
仅需要删除构造函数上的@AssistedInject注解,以及SavedStateHandle参数前的@Assisted注解,Hilt会自动完成SavedStateHandle的注入。
内容的提问来源于stack exchange,提问作者Ahmadddd4
相关产品推荐
相关产品推荐

