Compose - Exercise 2

  • stan

    • wyjasnić dlaczego jest tracony

  • lazy column

  • ćwiczenie - stoper

  • dwa pojęcia stanu

    • stan widoku - pokaz/schowaj

    • stan danych

    • chodzi o przeładowanie widoku

    • ale też przy przeładowaniu nie może być efektów ubocznych

  • statSaver

Wytłumaczyć ze nie tylko chodzi o zmiany pod annotacją composable ale dowolne wywołanie funkcji bo cokolwiek może być odświezone:

@Composable
@Deprecated("Example with bug")
fun ListWithBug(myList: List<String>) {
    var items = 0

    Row(horizontalArrangement = Arrangement.SpaceBetween) {
        Column {
            for (item in myList) {
                Text("Item: $item")
                items++ // Avoid! Side-effect of the column recomposing.
            }
        }
        Text("Count: $items")
    }
}

Last updated

Was this helpful?