deriveStateOf 变化时触发回调

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

我想在

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) }
android kotlin android-jetpack-compose
1个回答
0
投票

您可能想查看

LaunchedEffect
。当
key
的值发生变化时会触发该块。

LaunchedEffect(nowSelectedIndex) {
    onSelectedItemChanged(nowSelected)
}
© www.soinside.com 2019 - 2024. All rights reserved.