Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在哪里可以找到liveData构建块?_Android_Kotlin_Kotlin Android Extensions_Kotlin Coroutines - Fatal编程技术网

Android 在哪里可以找到liveData构建块?

Android 在哪里可以找到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

Android
coroutines
plus
liveData
文档说明,如果我们想在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)