【发布时间】:2021-01-24 19:09:05
【问题描述】:
我有这个密封类代表视图状态
sealed class ViewState<out ResultType>(
) {
data class Success<ResultType>(val data: ResultType?) : ViewState<ResultType>()
data class Error(val message: String) : ViewState<Nothing>()
object Loading : ViewState<Nothing>()
}
这里我使用 viewState
fun <T, A> performGetOperation(databaseQuery: () -> LiveData<T>)): LiveData<ViewState<T>> =
liveData(Dispatchers.IO) {
emit(ViewState.Loading)
val cache: LiveData<ViewState.Success<T>> = databaseQuery.invoke()
.map { ViewState.Success<T>(it) }
emitSource(cache)
}
这行太疯狂了 emitSource(cache) 给我 emitSource(cache)
Required:
LiveData<ViewState<T>>
Found:
LiveData<ViewState.Success<T>>
【问题讨论】:
-
尝试从函数返回
LiveData<ViewState.Success<T>>而不是LiveData<ViewState<T>> -
emit(ViewState.Loading) 会喊
-
您能否更好地格式化您的代码。你有很多不必要的空行。代码中的哪一行给出了这个错误?
-
@ChristianB 这一行 emitSource(cache)