Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

338
Visualizações
Problema de pérdida de memoria de React Carousel (no puedo obtener el primer valor seleccionado de la lista)

En mi proyecto, enumeré las imágenes del mapa a través del componente de carrusel de reacción y mostré su nombre en div de movimiento para agregar algo de animación.

Tengo un problema para obtener el valor de displayName de la lista de mapas.

Cuando elimino motion.div, funciona. También funciona cuando agrego este div durante el tiempo de ejecución.

Cuando actualizo la página, aparece un mensaje de error.

Aquí está mi mensaje de error que se muestra a continuación.

 Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function.

¿Cómo puedo solucionar mi problema?

Aquí está mi componente MapList que se muestra a continuación.

 const MapList = () => { const { maps } = useContext(APIContext); const [selected, setSelected] = useState(0); const handleChange = (selectedIndex) => { setSelected(selectedIndex); }; useEffect(()=>{ handleChange(selected) }, [selected]) const variants = { show: { opacity: 1, y: 0, transition: { ease: "easeOut", duration: 0.5, }, }, hide: { y: 50, opacity: 0, }, }; return ( <div className={styles.mapList}> <Carousel infiniteLoop showStatus={false} showThumbs={false} dynamicHeight={false} swipeable={true} onChange={handleChange} > {maps?.map((map, index) => ( <img className='carouselImage' src={map.splash} alt='carouselImage' key={index}></img> ))} </Carousel> <motion.div className={styles.mapInfo} key={selected} variants={variants} animate={"show"} initial="hide" > <p className={styles.mapName}>{maps?.[selected].displayName}</p> </motion.div> </div> ) } export default MapList;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Deberías limpiar tu useEffect.

 const MapList = () => { const { maps } = useContext(APIContext); const [selected, setSelected] = useState(0); const handleChange = (selectedIndex) => { setSelected(selectedIndex); }; useEffect(()=>{ let isMounted = false; if(!isMounted){ handleChange(selected) } return () => (isMounted=true) }, [selected]) const variants = { show: { opacity: 1, y: 0, transition: { ease: "easeOut", duration: 0.5, }, }, hide: { y: 50, opacity: 0, }, }; return ( <div className={styles.mapList}> <Carousel infiniteLoop showStatus={false} showThumbs={false} dynamicHeight={false} swipeable={true} onChange={handleChange} > {maps?.map((map, index) => ( <img className='carouselImage' src={map.splash} alt='carouselImage' key={index}></img> ))} </Carousel> <motion.div className={styles.mapInfo} key={selected} variants={variants} animate={"show"} initial="hide" > <p className={styles.mapName}>{maps?.[selected].displayName}</p> </motion.div> </div> ) } export default MapList;

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda