任何时候更新状态都会发生重新组合.

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

@Composable
fun MyChildUI() {

    var count by mutableStateOf(1)

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

img

推荐答案

这是因为作用域重组.任何非内联且返回单元的Composable都是作用域.仅合成在最近的范围内触发重新合成.在您的示例中,它是Button的作用域.你可以查到这个问题,它非常相似

Why does mutableStateOf without remember work sometimes?

Kotlin相关问答推荐

API迁移到Spring Boot 3后,Spring Security无法工作

映射中列表类型的Kotlin可空接收器?

如何在Kotlin中为接受varargs的函数添加带有默认值的新参数?

为什么";";.equals(1)在柯特林语中是有效的,但";";=1是无效的?

访问者闭包中的Kotlin序列yield 率

哪个更好? Integer.valueOf(readLine()) 或 readLine()!!.toInt()

创建包含 3 个相同项目的列表/使用返回类型重复

Kotlin .如何用从 1 到 90 的 5 个唯一数字填充列表中的每一行?

伴随对象在变量更改时更改它的值

为什么我们在 kotlin 中需要 noinline?

在 APK META-INF/library_release.kotlin_module 中复制的重复文件

runBlocking 中的 deferred.await() 抛出的异常即使在被捕获后也被视为未处理

如何将 kotlin 集合作为 varagrs 传递?

封闭 lambda 的隐式参数被shadowed

使用Dagger 2提供函数依赖性

使用 kotlin 每 3 位数添加逗号或点

Kotlin-将UTC转换为当地时间

Kotlin替换字符串中的多个单词

在android java类中使用Kotlin扩展

lateinit 的 isInitialized 属性在伴随对象中不起作用