我有一个带有多个过滤器的屏幕,其中每个过滤器都使用
MutableState
的某种变体,例如 mutableStateOf
等:
var firstName by mutableStateOf("")
var lastName by mutableStateOf("")
Button(
enabled = // <-- when the filter is "dirty" aka either firstName or lastName changes
) {
// ...
}
我想在第一次搜索后禁用
Search
按钮,并在任何搜索条件发生更改时启用它。我该怎么做?
我已经尝试过
LaunchedEffect(firstName, lastName) {}
,但它仅在应用程序启动时触发一次,并且当任何一个值发生更改时不会执行任何操作。
如果字符串声明如下,您的
LaunchedEffect(firstName, lastName)
应该可以工作:
var firstName by remember { mutableStateOf("") }
但是如果它们是这样声明的:
val lastName = remember { mutableStateOf("") }
那么你的
LaunchedEffect
应参考各州的值:
LaunchedEffect(firstName.value, lastName.value)