return 单击按钮后来自可组合函数的值

return a value from composable function after button click

我在一个组合函数中有一些代码,return是一个“PscEntity”,它接受(如您所见)一个代码(String 类型)和金钱(Double 类型),我'我已经尝试使函数 return 成为 PscEntity 的新实例(因为此函数将用于更新那些实体的实例)但由于以下原因它不起作用: 并添加“@Button”不让我 return "PscEntity"

                Row() {
                    Button(onClick = {
                        return PscEntity(code = newCode.value, money = newMoney.value)
                    })
                    {
                        Text("Apply changes")
                    }
                    Button(onClick = {
                        return PscEntity(code = code, money = money)
                    })
                    {
                        Text("Disregard changes")
                    }

我想添加一个会被更改的变量,然后用 if 语句检查值,但这似乎不是解决问题的好方法,

任何帮助将不胜感激

谢谢:)

编辑:

此函数是从“.callable { }”调用的

Card(
                modifier = Modifier
                    .fillMaxWidth()
                    .shadow(40.dp)
                    .clickable {
                        showAlertDialog("11111", 12.32)
                    }
            )
@Composable
fun showAlertDialog(code: String, money: Double): PscEntity {
    var newCode by remember { mutableStateOf(code) }
    var newMoney by remember { mutableStateOf(money) }


    Box(contentAlignment = Alignment.Center) {
        Column() {
            TextField(value = newCode, onValueChange = {
                newCode = it
            })

            TextField(value = newMoney.toString(), onValueChange = {
                newMoney = it.toDouble()
            })
            Row()
            {
                Button(onClick = {
                    return PscEntity(code = newCode, money = newMoney)
                })
                {
                    Text("Apply changes")
                }

                Button(onClick = {
                    return PscEntity(code = code, money = money)
                })
                {
                    Text("Disregard changes")
                }
            }
        }
    }
}

您的代码不正确。 Compose 函数不会 return 结果。 您应该为此使用 lambda。 请检查样品 codeLab