gpt4 book ai didi

android-jetpack-compose - Jetpack Compose - 我们如何在 onClick() 中调用 @Composable 函数

转载 作者:行者123 更新时间:2023-12-03 21:44:06 29 4
gpt4 key购买 nike

我知道在 onClick 中调用可组合函数是不可能的。
@Composable 调用只能在 @Composable 函数的上下文中发生
撰写版本 - alpha06
但我坚持以下要求。
要求是,
在 onClick 中调用服务器 api 调用。

LazyColumnFor(items = list) { reports ->
Box(Modifier.clickable(
onClick = {
//API call
val liveDataReportsDetails =
viewModel.getReportDetails("xxxx")
LiveDataComponentForReportsDetails(liveDataReportsDetails)


}
)) {

ReportListItem(
item = reports
)
}
}

最佳答案

所以你是对的,不能从按钮或修饰符的 onClicks 中调用可组合函数。因此,您需要创建一个值,例如:

private val showDialog = mutableStateOf(false)
当设置为 true 时,您要调用可组合代码,例如:
if(showDialog.value) {
alert()
}
警报是这样的:
@Composable
fun alert() {
AlertDialog(
title = {
Text(text = "Test")
},
text = {
Text("Test")
},
onDismissRequest = {

},
buttons = {
Button(onClick = { showDialog.value = false }) {
Text("test")
}
}

)
}
现在完成更改预期的 bool 值,例如:
Box(Modifier.clickable(
onClick = {
showDialog.value = true
}
))
我希望这个解释有帮助,当然值不一定是 bool 值,但你明白了这个概念:)。

关于android-jetpack-compose - Jetpack Compose - 我们如何在 onClick() 中调用 @Composable 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65641635/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com