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

101
Vistas
WMSTileLayer no se actualiza después de cambiar el parámetro de capas en el folleto de reacción

Estoy tratando de actualizar mi capa WMS en react-leaflet v2.xx El WMSTileLayer funciona solo con la primera capa y cuando cambio el parámetro de layers en él, muestra la capa agregada anteriormente. He escrito el siguiente código,

 <MapContainer whenCreated={(mapInstance) => { mapRef.current = mapInstance; }} center={[38.861, 71.2761]} zoom={5} zoomControl={false} style={{ width: "100%", height: "70vh" }} > <ZoomControl position="topright" /> <TileLayer url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" attribution="&copy; <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a> contributors" /> <WMSTileLayer layers={this.props.wmsLayer} url={`${process.env.REACT_APP_GEOSERVER_URL}/wms`} transparent={true} format={"image/png"} /> </MapContainer>

Entonces, mi pregunta es, ¿cómo actualizar WMSTileLayer cuando se actualiza mi this.props.wmsLayer ?

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

0

Está usando el componente MapContainer , lo que me hace sospechar que en realidad está usando la versión 3 de react-leaflet. En la versión 3 de react-leaflet, muchos accesorios son inmutables , lo que significa que una vez configurados, cambiarlos desde la perspectiva de los accesorios de reacción no hará nada. Debería obtener una referencia al L.TileLayer.WMS subyacente y llamar a un método para cambiar las capas. Desafortunadamente, los documentos del folleto no parecen mostrar ningún método para hacerlo (es decir, como una función setLayers o algo así). Podrías llamar a setUrl en la capa de mosaicos, aunque no estoy seguro de que eso sea lo que quieres.

Lo más fácil sería agregar una key de apoyo a su WMSTileLayer y establecerla en una identificación única que obligará a reaccionar para volver a renderizar cuando cambie this.props.wmsLayer . No estoy seguro de qué es this.props.wmsLayer , pero si tiene alguna URL o identificación única asociada, configure key={this.props.wmsLayer.id} o lo que pueda, y reaccionar obligará a volver a procesar ese componente . Es un poco exagerado, pero sin algún tipo de función setLayers en la API del folleto, no estoy seguro de que haya una forma más adecuada de hacerlo.

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