Surface(
modifier = Modifier.fillMaxSize().safeDrawingPadding(),
color = MaterialTheme.colorScheme.background
) {
var pseudoState by remember {
mutableStateOf(false)
}
LaunchedEffect(Unit) {} // NOTE: I am using Unit here
Column {
Button(onClick = { pseudoState = !pseudoState }) {
Text(text = "TOGGLE pseudoState to ${!pseudoState}")
}
Text(text = "Random: ${Math.random()}")
}
}
Когда я запускаю его, обратите внимание, что кнопка корректно перекомпонована после нажатия на нее, а другой составной текст пропускается.

Теперь я внесу одну небольшую корректировку, предоставив pseudoState как ключ к пустому LaunchedEffect:
LaunchedEffect(pseudoState) {} // NOTE: I am using pseudoState now
Теперь при каждом нажатии кнопки кнопка и текст будут перекомпонованы:< /p>

Почему это происходит?
Я использую следующие зависимости:
[versions]
agp = "8.3.2"
kotlin = "1.9.0"
coreKtx = "1.15.0"
lifecycleRuntimeKtx = "2.8.7"
activityCompose = "1.9.3"
composeBom = "2024.11.00"
Подробнее здесь: https://stackoverflow.com/questions/791 ... he-whole-c