我正在学习代码a,我希望直接分配一个null lambda表达式给onValueChange
进行测试。
但是代码B,代码C和代码D都是错误的,我如何将空lambda (String) -> Unit
分配给变量onValueChange
?
代码
@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = onNameChange
)
}
}
代码B
@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = { }
)
}
}
C代码
@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = null
)
}
}
代码D
@Composable
fun HelloContent(name2: String, onNameChange: (String) -> Unit) {
Column(modifier = Modifier.padding(16.dp)) {
...
OutlinedTextField(
...
onValueChange = fun(x:String):Unit{ }
)
}
}
你没有说OutlinedTextField
来自哪里,但我猜这一个。在这种情况下,答案是你不能;类型为(String) -> Unit
,不可为空。是的,我看到像label: () -> Unit = null
这样的参数,但这没有意义;不仅null
不是一个有效的参数,而且() -> Unit
如何被解释为一个标签?
但是一个什么都不做的lambda就像你的B和d一样