He intentado volver a representar una lista de contactos dentro de un carrusel cambiando el objeto de estado en la clase principal. La primera vez que las tarjetas se procesan bien, pero cuando intento agregar un nuevo contacto y actualizar el objeto de estado, el niño no se vuelve a procesar.
He confirmado que el objeto de estado se actualiza correctamente (registrado dentro del gancho useEffect en el componente principal).
Estoy usando el componente @trendyol-js/react-carousel a continuación.
const [contacts, setContacts] = React.useState([...contactArrayFromDB]); <Carousel className="carosusel" {...settings} rightArrow={ <ArrowForwardIcon className="rightArrow" sx={{ color: styles.color.green }} /> } leftArrow={ <ArrowBackIcon className="backArrow" sx={{ color: styles.color.green }} /> } > {**contacts.map**((item, index) => ( <span> {console.log("rendering card .." + index)} <ContactCard key={item.id} item={item} styles={styles} isEditContacts={true} /> </span> ))} </Carousel>Cuando actualizo el estado, se muestra el registro "tarjeta de representación..." en la consola, lo que significa que la función de mapa se ejecuta correctamente cada vez que se actualiza el estado.
Seguí todas las soluciones en SO que pude encontrar:
No pude encontrar ninguna solución a la misma. Expertos en React, sugieran cómo puedo solucionar este problema.
Finalmente, después de mucha investigación, resulta que @trendyol-js/react-carousel tiene un indicador dinámico que debe establecerse en TRUE para permitir agregar elementos más nuevos. El documento oficial no habla de eso. Tal vez esto ayude a alguien si enfrenta un problema similar con este componente de reacción.
<Carousel dynamic={true} ...> ... items here </Carousel>