问题描述
当我尝试使用Dagger 2时,会出现此错误,我应该怎么做,我在Dagger 2中处于新状态
e: /Users/stepanbezhuk/Documents/Work/Rebus/Movie/app/build/tmp/kapt3/stubs/debug/com/popularmovies/movies/Service/MessageWorking.java:11: error: @Provides methods must return a value (not void)
public final void messageConnected$app_debug(boolean networkStatus) {
模块1
@Module
open class MessageWorking @Inject constructor(private val context: Context) {
@Provides
internal fun messageConnected(networkStatus: Boolean) {
if (networkStatus) {
showMessage(message = "Connect")
} else {
showMessage(message = "disconnect")
}
}
private fun showMessage(message: String) {
return Toast.makeText(context,message,Toast.LENGTH_SHORT).show()
}
}
接口
@Component(modules = arrayOf(MessageWorking::class))
@Singleton
interface DaggerComponent {
fun messageConnected(networkStatus: Boolean)
}
解决方法
struct ContentView1: View {
var body: some View {
NavigationLink(destination: DetailView()) {
Image("small").customSourceTarget()
}.navigationBarTitle("Navigation")
}
}
struct ContentView2: View {
var body: some View {
Image("large").customTransitionTarget()
}
}
NavigationView {
ContentView1()
}.customAnimatable()
注释意味着您必须提供一些东西。您在@Provides
中没有返回类型。
您正在Dagger(吐司)内做UI东西,这很奇怪,因为Dagger的职责是提供依赖关系。
以下是指向Dagger的简单介绍以及如何设置的链接: https://medium.com/@skshayne/understanding-dagger-as-a-beginner-8ffe29bad429