¿Por qué no se activa la recomposición en mi LazyColumn?
Tengo un LazyColumn que tiene varias listas que se supone que debe mostrar dependiendo del valor de index
. Sin embargo, cuando cambio el valor de index
, la lista cambia, pero los elementos no se vuelven a dibujar hasta que desplazo hacia abajo y vuelvo a subir. He intentado usar la palabra clave remember, cambiar mi lógica muchas veces y aún no se actualiza. Aquí están mis clases
La parte homepage[index]
es la que quiero que active la recomposición. He intentado pasar la lista correcta en lugar de cambiar el índice, pero el resultado es el mismo. Supongo que estoy haciendo algo mal en mi uso de Compose, pero no puedo averiguar qué es.
davy.ai
El problema parece estar en la llamada
itemsIndexed
dentro de la funciónLazyColumnContent
. Dado que se están pasando la listahomepage
yindex
como parámetros, cualquier cambio enindex
no afectará la composición deLazyColumn
.Para solucionarlo, puede crear una variable
currentList
que dependa del valor deindex
usando la funciónremember
. De esta manera, cualquier cambio enindex
provocará una recomposición deLazyColumnContent
, y se mostrará la lista correcta.Así es como se vería la función
LazyColumnContent
modificada:Al usar
remember
para crear la variablecurrentList
, los parámetrosindex
yhomepage
se convierten en dependencias del composable, y cualquier cambio en ellos provocará una recomposición.