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

99
Vistas
El evento del componente funcional aún está activo cuando se cambia el estado - REACT MAPBOX

Estoy tratando de crear una aplicación en la que pueda alternar los efectos haciendo clic en los elementos de navegación.

En los elementos de navegación, tengo un detector de eventos que cambia de estado

 const [marker, setMarker] = useState(false); onClick={() => setMarker(!marker)}

La idea es que cuando se establece en verdadero, puede hacer clic en el mapa para establecer un punto de ruta. Y cuando es falso, hacer clic tiene el comportamiento predeterminado.

Intenté usar una declaración if como esta

 if (marker) { map.current.on('click', (e) => { new mapboxgl.Marker().setLngLat(e.lngLat).addTo(map.current); // Create a new marker. }); }

Ya sea que el estado sea verdadero o falso, aún puede colocar un punto de referencia después de cambiarlo por primera vez.

¿Puede alguien decirme lo que me estoy perdiendo aquí? Sé que es algo estúpido.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¡Enfrenté el mismo problema cuando comencé a usar React Hooks! ¡No se preocupe, eso se debe a que no tiene código para eliminar el evento de click agregado para el map Ref! ¡Entonces solo necesita limpiar el evento de click para el objeto del mapa!

 useEffect(() => { function clickHandler(e) { new mapboxgl.Marker().setLngLat(e.lngLat).addTo(map.current); // Create a new marker. } if (marker) { map.current.on('click', (e) => { clickHandler(e) }); } return () => { map.current.removeEventListener('click', clickHandler) } }, [marker]);

Por favor intente de esta manera... Buena suerte...

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