Cómo manejar el estado en Jetpack Compose por Farhan Tanvir | Marzo de 2022
Usa el estado de manera efectiva
Jetpack componer se convirtió en una de las partes importantes de la familia Android. Es un conjunto de herramientas moderno para crear interfaces de usuario nativas. Simplifica y acelera el desarrollo de la interfaz de usuario y da vida a sus aplicaciones con menos código.
Según la documentación oficial:
El estado en una aplicación es cualquier valor que puede cambiar con el tiempo. Esta es una definición muy amplia, que cubre todo, desde la base de datos Room hasta las variables en las clases.
Un ejemplo básico de mostrar el estado al usuario es una Snackbar que muestra cuándo ocurrió un error de red.
En Jetpack componer algo como TextField
No actualice automáticamente como en las vistas imperativas basadas en XML. Para hacer actualizaciones componibles, el nuevo estado debe indicarse explícitamente. Por ejemplo, si ejecuta el siguiente código, no pasará nada.
porque no actualizamos value
parámetroTextField
.
Podemos guardar el valor usando remember
componible remember
Almacenará el valor durante la inicialización y devolverá el valor durante el reensamblaje.
var name by remember { mutableStateOf("") }
Esta by
La palabra clave representa la sintaxis de delegación de propiedades de Kotlin. Le permitirá desempaquetar cadenas de estado mutable en cadenas regulares. Entonces, el tipo de la variable de nombre será una cadena. Si ahora ejecutamos el código a continuación, podemos ver que el valor cambia.
Esto se debe a que estamos actualizando value
Alcance.
También podemos usar remember
puede ser reemplazado por by
palabras clave =
logo.En este caso el tipo de la variable de nombre será MutableState
Ahora si queremos acceder name
El nombre de la variable que tenemos que usar. name.value
.
var name = remember { mutableStateOf("") }
personalmente me gusta usar by
Palabras clave.Entonces necesito escribir name.value
obtener valor
Esta remember
Le ayuda a conservar el estado durante las reorganizaciones, pero no durante los cambios de configuración.Para esto tienes que usar rememberSaveable
.rememberSaveable
guardará automáticamente cualquier cosa que se pueda guardar en Bundle
.
Como sugiere el nombre, stateful significa que un componible tiene un estado dentro (como en el ejemplo anterior). Lo contrario de esto es apátrida. Esto significa que no habrá ningún estado dentro del componible. La composición con estado siempre es difícil de reutilizar y probar. Por lo tanto, siempre debe intentar usar sin estado. Para hacerlo apátrida, usaremos la promoción estatal.
La promoción de estado es un patrón de programación en el que mueve un estado componible a la persona que llama de ese componible para hacer que el componible no tenga estado.El aumento de estado tiene muchos beneficios, como una única fuente de verdad, Encapsulación, desacoplamiento, etc. La manera fácil es reemplazar el estado con un parámetro. Ahora modifiquemos el ejemplo anterior.
Puedes ver que no tenemos ningún estado dentro Content
Función. Hemos movido el estado en llamadas componibles.