ObserveAsState在jetpack compose中不起作用



我正试图在jetpack compsoe中使用官方视频实现Viewmodel:

Jetpack组合:状态

它显示了这个最小的例子:

class HelloViewModel : ViewModel() {
private val _name = MutableLiveData("")
val name: LiveData<String> = _name
fun onNameChange(newName: String) {
_name.value = newName
}
}
@Composable
fun HelloScreen(helloViewModel: HelloViewModel = HelloViewModel()) {
val name: String by helloViewModel.name.observeAsState("")
HelloContent(name = name, onNameChange = { helloViewModel.onNameChange(it) })
}
@Composable
fun HelloContent(name: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
if (name.isNotEmpty()) {
Text(
text = "Hello, $name!",
modifier = Modifier.padding(bottom = 8.dp),
style = MaterialTheme.typography.h5
)
}
OutlinedTextField(
value = name,
onValueChange = onNameChange,
label = { Text("Name") }
)
}
}

在更新到Jetpack Compose 1.1.0版本后,我不能写任何字符,插入后立即删除,任何人都知道解决方法,请,提前感谢

observeAsState是一个扩展方法,包括androidx.compose.runtime.live数据库。

因此,您必须为您的依赖项添加此库,如下所示。

dependencies {
//observeAsState()
implementation "androidx.compose.runtime:runtime-livedata:1.3.0-rc01"
}

最新更新