我希望从密封类中获取数据Result<out R>,但val mydata = queryList.data导致以下错误,我该如何修复它?
错误信息 智能转换为“Result.Success<Flow<List>>”是不可能的,因为“queryList”是具有开放或自定义 getter 的属性
@Composable
fun Greeting(
name: String
) {
Column( ) {
val queryList by produceState(initialValue = aa() ) {
value = mViewMode.listRecord()
}
when (queryList) {
is Result.Error -> {}
is Result.Loading -> {}
is Result.Success -> {
val mydata = queryList.data //It cause error
}
}
}
}
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
data class Error(val exception: Exception) : Result<Nothing>()
object Loading : Result<Nothing>()
}
fun aa(): Result<Flow<List<MRecord>>> {
return Result.Loading
}
Run Code Online (Sandbox Code Playgroud)
将返回的属性值缓存在局部变量中,以便可以进行智能转换。它不能在没有局部变量的情况下进行智能转换,因为它是委托属性。
\n您可以在声明中这样做when:
when (val result = queryList) {\n is Result.Error -> {}\n is Result.Loading -> {}\n is Result.Success -> {\n val mydata = result.data\n // ..\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1007 次 |
| 最近记录: |