在Jetpack Compose中,如果我们有一个composable函数,它的内部状态改变了,但是它并没有被刷新怎么办?可能原因是拥有状态的组件被打包在一起时,只有当这个组件被删除然后重新创建时,内部状态才会发生变化,因此不会被刷新。
为了解决这个问题,我们可以使用rememberSaveable函数来保存composable函数的状态,然后当状态改变时,重新计算该函数的值。以下是一个示例:
@Composable fun ExampleComposable() { var count by rememberSaveable { mutableStateOf(0) } Button(onClick = { count++ }) { Text(text = "Click me $count") } }
这个示例中,我们使用rememberSaveable函数保存一个可变的状态变量count,然后每次单击按钮时增加count的值。这样,即使该组件被重新创建,也可以恢复其内部状态,并且在状态发生变化时会自动刷新该组件。