Escribe para buscar…

Efecte

Durant la composició de la interfície d'usuari pot ser necessari executar accions no relacionades amb la composició i que han d'executar-se fora del procés de composició.

Esta página todavía no se ha traducido — se muestra en su idioma original:Català

Introducció

Entorn de treball

Crea un projecte effect.

SideEffect

SideEffect és una funció componible que executa un bloc de codi cada vegada que el seu component pare es recompon, i que s’executa de manera independent al final del procés de composició.

Per exemple, a continuació tens un codi que no utilitza un SideEffect, i que registra que la cosa va 🥳 quan en realitat ha anat 👺 perquè no espera que hagi finalitzat tot el procés de recomposició:

kotlin
@Composable
fun App() {
    log()
    Text("Hello Word!")
    throw Exception("Evil 👺")
}

fun log() {
    println("Everything Went Well 🥳")
}

Si executes el codi pots veure que s’imprimeix el log 🥳, encara que la composició ha estat 👺

ps
Everything Went Well 🥳
Exception in thread "main" java.lang.Exception: Evil ?

Això passa perquè el procés de composició ha executat la crida a log() quan tu li has dit que havia d’executar-ho.

En canvi, si utilitzes un SideEffect com en aquest exemple, la funció componible només s’executa al final de la composició si la composició s’ha pogut realitzar.

kotlin
@Composable
fun App() {
    SideEffect {
        log()
    }
    Text("Hello Word!")
    throw Exception("Evil 👺")
}

Si executes el codi segueix anant 👺, però almenys no queda registrat que la composició ha anat 🥳:

ps
Exception in thread "main" java.lang.Exception: Evil ?

Estás leyendo una vista previa.

Inicia sesión para leer el artículo completo. Cualquier cuenta abre 4 artículos gratuitos al mes; el alumnado y el profesorado leen las páginas de su curso sin límite.

Iniciar sesión