Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

135
Vistas
Lista plegable con un botón de carga adicional para mostrar todos los elementos de esta lista

Estoy desarrollando una lista plegable que solo muestra los primeros cinco elementos y un botón para cargar más al principio, y cuando hago clic en el botón para cargar más, se debe mostrar la lista completa. Estoy usando scrollHeight para determinar la altura de esta lista plegable y funciona bien para mostrar los primeros cinco elementos y el botón Cargar más, pero después de hacer clic en el botón Cargar más, la altura de esta lista plegable no cambia y los elementos restantes no se pueden se muestra debido a la restricción de altura. ¿Alguien tiene una idea de cómo solucionarlo? Muchas gracias, realmente me quedé atrapado aquí todo este día.

Así es como esta lista colapsable se parece a la lista colapsable

Este es el código de la lista colapsable

 const Collapsible = ({ showCard, loaded, children }) => { const collapsibleEl = useRef(); const [scrollHeight, setscrollHeight] = useState(); useEffect(() => { setscrollHeight(collapsibleEl.current.scrollHeight); console.log(collapsibleEl.current.scrollHeight); }, [loaded, showCard]); return ( <> <div className={styles.collapsible} ref={collapsibleEl} style={ showCard ? scrollHeight ? { height: `${scrollHeight + 100}px` } : { height: `${collapsibleEl.current.scrollHeight + 100}px` } : { height: "0px" } } > {children} </div> </> ); }; export default Collapsible;
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Lo he descubierto, todo lo que necesito hacer es usar settimeout.

así, solo dale un poco de tiempo para obtener la altura de desplazamiento y luego vuelve a renderizar.

 useEffect(() => { setTimeout(() => { setscrollHeight(collapsibleEl.current.scrollHeight); }, 300); console.log(collapsibleEl.current.scrollHeight); }, [showCard, loaded]);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda