Реконсиляция завязана на порядок вызова composable функций, теперь представим что мы создали такой объект и поменяли его в одном компоненте и тут же дернулся колбек в другом компоненте и сломалась рекосиляция:
class Position(x: Int, y: Int) {
var x by mutableStateOf(x)
var y by mutableStateOf(y)
}
val p = remember { Position(0, 0) }
@Composable fun Foo() {
PositionChanger(
position=p,
onXChange={ p.x = it }
onYChange={ p.y = it }
)
}
@Composable fun Bar() {
PositionChanger(
position=p,
onXChange={ p.x = it }
onYChange={ p.y = it }
)
}
@Composable fun Baz() {
Bar()
Foo()
}