刀柄:@DefineComponent dagger.hilt.components.SingletonComponent 缺少父声明

时间:2021-03-25 16:57:57

标签: kotlin dagger-2 android-jetpack android-jetpack-compose dagger-hilt

我正在使用 Jetpack Compose + Hilt + Coroutines 建立一个项目。我没有使用任何片段。它是一个基于单个活动(ComponentActivity)的项目。我使用了最新版本: 科特林:1.4.31 & 刀柄:2.33-beta

这是 logcat 错误快照: Logcat snapshot

我知道之前已经问过这个问题,但问题是使用了已弃用的 Hilt 库,其中“ApplicationComponent”在 AppModule 中已被弃用。请看一下设置:

应用模块:

@Module
@InstallIn(SingletonComponent::class)
object AppModule{ 
  //
}

应用类:

@HiltAndroidApp
class App: Application()

主要活动:

@AndroidEntryPoint
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
        home()
    }
  }
}

@Composable
fun home(model: UserViewModel = viewModel()) {
val items = model.fetchUserList.observeAsState(initial = listOf<UserDomain>())
val test = items.value
Log.d("test_data",test.toString())
}

视图模型:

@HiltViewModel
class UserViewModel @Inject constructor (private val mainRepository: MainRepository) : ViewModel() {

val fetchUserList = liveData {
    emit(Resource.loading(data = null))
    emit(mainRepository.getEmployee())
  }
}

刀柄依赖:

// Hilt dependency injection
implementation "com.google.dagger:hilt-android:2.33-beta"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
// ViewModel
implementation "androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha03"
// When using Kotlin.
kapt 'androidx.hilt:hilt-compiler:1.0.0-beta01'

1 个答案:

答案 0 :(得分:1)

更新你的刀柄编译器依赖:

import React from 'react';
import axios from 'axios';
class ChartGenerator extends React.Component{

    state={
        clinicalData:[]
    }

    componentDidMount(){
        axios.get("http://localhost:8080/clinicalservices/api/clinicals/1/bp").then(res=>{

            this.setState(res.data);
        })

    }


    render(){
        return (<div>
            <h2>Clinical Report:</h2>
            {this.state.clinicalData.map((item,index)=>(
                <p key={index}>{item.componentValue}</p>
            ))}

        </div>);
    }
}



export default ChartGenerator;