Tak*_*aki 8 android kotlin android-jetpack-compose
我有一个可组合函数,我需要在单击按钮后调用它,但它一直显示错误,无法通过单击按钮执行可组合项,任何人都可以指导我解决此问题吗?谢谢
Box(contentAlignment = Alignment.Center) {
Button(onClick = {
// This is a composable function that i need to call
SignUpNewUser(email,fullName,country,password)
}
,modifier = Modifier
.width(200.dp)
.background(color = Color.DarkGray)) {
Text(text = "Sign Up",style = TextStyle(color = Color.White,fontWeight = FontWeight.Bold))
}
}
Run Code Online (Sandbox Code Playgroud)
Phi*_*hov 12
您只能将一个@Composable视图添加到另一个@Composable视图。
onClick未标记@Composable,因此您会收到此警告。您只能使用 更改状态onClick。
例如,您可以创建一个标志并根据该标志显示 UI:
var signUp by remember { mutableStateOf(false) }
if (signUp) {
SignUpNewUser(email, fullName, country, password)
} else {
Box(contentAlignment = Alignment.Center) {
Button(onClick = {
signUp = true
}, modifier = Modifier
.width(200.dp)
.background(color = Color.DarkGray)) {
Text(text = "Sign Up", style = TextStyle(color = Color.White, fontWeight = FontWeight.Bold))
}
}
}
Run Code Online (Sandbox Code Playgroud)
我建议您从这个 YouTube 视频开始,它解释了何时需要在撰写中使用状态的基本原则。您可以通过 Compose文档中的状态继续加深您的知识。
另一种选择是使用Compose Navigation。