考虑下面的片段
fun doSomething(){
}
@Composable
fun A() {
Column() {
val counter = remember { mutableStateOf(0) }
B {
doSomething()
}
Button(onClick = { counter.value += 1 }) {
Text("Click me 2")
}
Text(text = "count: ${counter.value}")
}
}
@Composable
fun B(onClick: () -> Unit) {
Button(onClick = onClick) {
Text("click me")
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当按下“click me 2”按钮时,B compose 函数将被重新组合,尽管其中的任何内容都没有改变。
澄清: doSomething 用于演示目的。如果您坚持要一个实际的例子,您可以考虑以下 B 的用法:
B{
coroutinScope.launch{
bottomSheetState.collapse()
doSomething()
}
}
Run Code Online (Sandbox Code Playgroud)
从 compose 编译器报告中我可以看到 B …