我想在
derivedStateOf
发生变化时触发回调。我的代码目前如下所示:
var previouslySelectedIndex by rememberSaveable { mutableStateOf<Int?>(null) }
val nowSelectedIndex by remember {
derivedStateOf {
// some logic here
}
}
nowSelectedIndex?.let { nowSelected ->
if(previouslySelectedIndex == null || previouslySelectedIndex != nowSelected) {
previouslySelectedIndex = nowSelected
onSelectedItemChanged(nowSelected)
}
}
这对我来说非常冗长,特别是考虑到我们知道
derivedStateOf
仅在更改时才会触发。真的没有像下面这样的吗?
nowSelectedIndex.onChange { onSelectedItemChanged(nowSelected) }
您可能想查看
LaunchedEffect
。当 key
的值发生变化时会触发该块。
LaunchedEffect(nowSelectedIndex) {
onSelectedItemChanged(nowSelected)
}