如何将值设置为 remember val 而不是重组

how to set value to a remember val and not recompose

吹代码,我想在动画结束时将值设置为currentDegree,但是当我这样做时,它会重新组合。如何让它不重组?

    @Composable
    fun RotateImageCompose(width: Dp, height: Dp, resId: Int, targetDegree: Float) {
        val currentDegree = remember { mutableStateOf(0f) }

        var diff = currentDegree.value - targetDegree
        .
        .
        .

        val dregree by animateFloatAsState(targetValue = diff, animationSpec = tween(
            easing = LinearEasing,
            durationMillis = 180
        ), finishedListener = {
            //this code cause the issue
            currentDegree.value = it
        })

        Image(
            painter = painterResource(id = resId),
            contentDescription = null,
            modifier = Modifier
                .rotate(dregree)
                .size(width, height)
        )
    }

只需使用:

val currentDegree = remember {0f}

这样你的价值是不可变的。

详细解释请看这里:

我把值保存在 compose 之外