如何根据多个状态切换按钮?

问题描述 投票:0回答:1

我有一个带有多个过滤器的屏幕,其中每个过滤器都使用

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) {}
,但它仅在应用程序启动时触发一次,并且当任何一个值发生更改时不会执行任何操作。

kotlin android-jetpack-compose desktop-application kotlin-multiplatform
1个回答
0
投票

如果字符串声明如下,您的

LaunchedEffect(firstName, lastName)
应该可以工作:

var firstName by remember { mutableStateOf("") }

但是如果它们是这样声明的:

val lastName = remember { mutableStateOf("") }

那么你的

LaunchedEffect
应参考各州的值:

LaunchedEffect(firstName.value, lastName.value)
© www.soinside.com 2019 - 2024. All rights reserved.