Android 在哪里可以找到liveData构建块?
AndroidAndroid 在哪里可以找到liveData构建块?,android,kotlin,kotlin-android-extensions,kotlin-coroutines,Android,Kotlin,Kotlin Android Extensions,Kotlin Coroutines,AndroidcoroutinesplusliveData文档说明,如果我们想在liveData函数中执行异步操作,可以使用liveDatabuilder函数 val user: LiveData<User> = liveData { val data = database.loadUser() // loadUser is a suspend function. emit(data) } val用户:LiveData=LiveData{ val data=data
coroutines
plusliveData
文档说明,如果我们想在liveData函数中执行异步操作,可以使用liveData
builder函数
val user: LiveData<User> = liveData {
val data = database.loadUser() // loadUser is a suspend function.
emit(data)
}
val用户:LiveData=LiveData{
val data=database.loadUser()//loadUser是一个挂起函数。
发射(数据)
}
val用户:LiveData=LiveData{
emit(Result.loading())
试一试{
发出(Result.success(fetchUser())
}捕获(ioException:Exception){
发出(结果错误(ioException))
}
}
我尝试安装lifecycle viewmodel ktx
库,但找不到此块
它在哪里?试试:
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha01'
函数位于此处:
(目前)定义为:
@UseExperimental(ExperimentalTypeInference::class)
fun <T> liveData(
context: CoroutineContext = EmptyCoroutineContext,
timeoutInMs: Long = DEFAULT_TIMEOUT,
@BuilderInference block: suspend LiveDataScope<T>.() -> Unit
): LiveData<T> = CoroutineLiveData(context, timeoutInMs, block)
@UseExperimental(实验类型推断::类)
趣味生活数据(
上下文:CoroutineContext=EmptyCoroutineContext,
timeoutims:Long=默认超时,
@BuilderReference块:挂起LiveDataScope。(->Unit
):LiveData=CoroutineLiveData(上下文、timeoutims、块)
我也遇到了这个问题,我建议只添加他们建议的依赖项
问题是谷歌的Android文档在协同程序中没有明确提到这些ktx扩展(正如你在链接中看到的)对于获得提供LiveDataScope
的liveData
构建器非常重要
不要错误地认为你可以只使用较低的版本,即
2.1.0
,只需按照文档中的明确规定使用它,即2.2.0-alpha01
中的alpha/RC版本在互联网上随处可见,这最终拯救了我。为什么在android.developers.com的任何android文档中都没有这一点婴儿床在碎片中散发?
@UseExperimental(ExperimentalTypeInference::class)
fun <T> liveData(
context: CoroutineContext = EmptyCoroutineContext,
timeoutInMs: Long = DEFAULT_TIMEOUT,
@BuilderInference block: suspend LiveDataScope<T>.() -> Unit
): LiveData<T> = CoroutineLiveData(context, timeoutInMs, block)