Val*_*tin 11 android viewmodel android-jetpack-compose
我正在学习 Jetpack Compose,我试图为我的@Composable 创建一个视图模型。
在文档(https://developer.android.com/codelabs/jetpack-compose-state#3)中用于观察他们使用的可组合中的状态变化,observeAsState但在我的实现中,找不到该方法。我得到了Unresolved reference: observeAsState
视图模型
class MainActivityViewModel : ViewModel() {
val list: LiveData<MutableList<String>> = MutableLiveData(mutableListOf("Ana", "Are", "Mere"))
fun addString(item: String) {
val list: MutableList<String> = list.value!!
list.add(item)
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Compose 1.0.0-beta01
Ale*_*ann 35
observeAsState是runtime-livedata依赖的一部分。
将依赖项添加到您的build.gradle文件中。替换$compose_version为您使用的 compose 版本,例如1.0.0-beta01:
implementation "androidx.compose.runtime:runtime-livedata:$compose_version"
Run Code Online (Sandbox Code Playgroud)
小智 10
不完全回答您的问题,但作为建议,您可以迁移到 Flow 而不是使用实时数据。
视图模型->
val yourList: MutableStateFlow<List<String>> = MutableStateFlow(listOf("String1","String2","String3"))
Run Code Online (Sandbox Code Playgroud)
可组合->
val yourList by yourViewModel.yourList.collectAsState()
Run Code Online (Sandbox Code Playgroud)