Fail with MVVM and Jetpack Compose



尝试使用JetPack Compose学习MVVM的基础知识。我制作这个简单的代码是为了了解它的工作原理,但我在基础知识上很吃力。

这是我的密码;

可堆肥;

@Composable
fun PantallaSencilla() {
var viewModel = viewModel<MainViewModel>()
var text by rememberSaveable { mutableStateOf(viewModel.returnName()) }
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
TextField(value = text, onValueChange = { text = it })
Button(onClick = {
viewModel.changeName("Mario")
}) {
Text(text = "Change name")
}
}
}

这是用于控制状态的ViewModel。

class MainViewModel : ViewModel() {
var name : String by mutableStateOf("Pedro")
fun returnName():String {
return name
}
fun changeName(newName:String){
name = newName
}
}

谢谢你的评论。

我终于找到了这个解决方案;

@Composable
fun PantallaSencilla() {
var myViewModel = viewModel<MainViewModel>()
myViewModel.name
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
TextField(value = myViewModel.name, onValueChange = {myViewModel.name = it })
Button(onClick = {
myViewModel.changeName("Mario")
}) {
Text(text = "Change name")
}

}
}

最新更新