kotlin - mutableStateOf 保留重组后的值,而无需记住 Jetpack Compose 中的 API

标签 kotlin android-jetpack-compose android-jetpack compose-recomposition mutablestateof

Any time a state is updated a recomposition takes place.

但是在这里,我没有使用 remember API,但是在重组之后它也保存了值,是 mutableStateOf() 会记住没有 remember 的值API?

@Composable
fun MyChildUI() {

    var count by mutableStateOf(1)

    Button(onClick = {
        count++
        println(count)
    }) {
        Text(text = "$count")
    }
}

img

最佳答案

这是因为作用域重组。任何非内联且返回 Unit 的 Composable 都是一个范围。 Compose 仅​​触发最近范围内的重组。在您的示例中,它是 Button 的范围。你可以看看这个非常相似的问题

Why does mutableStateOf without remember work sometimes?

关于kotlin - mutableStateOf 保留重组后的值,而无需记住 Jetpack Compose 中的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73760697/

相关文章:

android - 多个数据源的分页库DataSource.Factory

android - 防止导航到同一个 fragment

android - 如何在 Compose 中预加载线圈图像?

android - 将参数传递给 Jetpack Compose 中的嵌套导航图

spring - @CreationTimestamp 和 @UpdateTimestamp 在 Kotlin 中不起作用

android - FragmentPagerAdapter 已弃用

android - 当创建它的参数发生变化时,如何替换 Android Jetpack Compose AndroidView?

android - Kotlin Android Jetpack 在后台 fragment 之间导航

java - Fragment的onDestroy()中是否需要将ViewBinding设置为null?

android - 添加 Kapt 插件后 - 执行 org.jetbrains.kotlin.gradle.internal.KaptExecution 时发生故障