I am desperately trying to solve this problem. I hope you can shed some light on it.
I have these components(Parent1, Paren2, LeafletMap
).
Parent1
includes Parent2
4 times. Parent2
includes leafletMap
. So this means leafletmap
component is rendered 4 times.
Parent1
passes some data to Parent2
and Parent2
does some modifications and passes different kind of data for leafletMap
.
Now, In Parent1
component, where I include Parent2
, I have 4 tabs. IN each tab, I include the Parent2
component.
Now, Parent2
gets data as markers and I pass those markers to Parent2
's included component - leafletmap
. LeafletMap
component does this as soon as it gets the data.
let points, bounds;
points = bounds = [];
for(let i=0; i < this.markers.length; i++){
if(!this.map.hasLayer(this.markers[i])){
this.map.addLayer(this.markers[i]);
let p = new L.latLng(this.markers[i].getLatLng().lat, this.markers[i].getLatLng().lng);
points.push(p);
this.oms.addMarker(this.markers[i])
};
}
this.map.fitBounds([points]);
Error-Question: The thing is this fitbound works perfectly for the first tab and shows the map correctly with the correct zoom. but as soon as I change the tab, the map looks like the blue thing. I tried to console log map's zoom property after I made fitbounds, and for the first tab, it prints 10, and for all other tabs, it prints 0. Why is that?
I am using vue.js, vuetify for tabs and leaflet for maps.