Mi estado se parece a:
this.state = { onWayMarkers: [], preparingMarkers: [], concludedMarkers: [], cancelledMarkers: [], } Folleto de May React dentro de un <MapContainer> :
<TileLayer attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" /> <LayersControl> <LayersControl.Overlay checked name="Concluded"> <LayerGroup> {this.state.concludedMarkers.map((element, idx) => { const icon = L.divIcon({ className: 'custom-icon', html: ReactDOMServer.renderToString(this.mapIconConcluded(element.label)), iconSize: [30, 30], iconAnchor: [10, 32] }); return( <Marker key={`marker-${idx}`} position={element.coord} icon={icon}> <Popup> <span>{element.order_id}</span> </Popup> </Marker> ); })} </LayerGroup> </LayersControl.Overlay> Tengo uno de estos códigos de capa para cada elemento de la matriz en this.state :
<LayersControl.Overlay name="name"><LayerGroup>{array.map}</LayerGroup></LayersControl.Overlay> Cuando actualizo el estado y borro una de las matrices, sucede esto:
El marcador de la matriz específica desaparece
Pero cuando desactivo y activo la capa, vuelve el marcador... sin el Popup. console.log(this.state.array) e incluso con la matriz vacía, el marcador vuelve
¿Alguna idea de por qué sucede esto y cómo puedo solucionarlo?