我有一个页面,在给用户提供选择器后,他可以切换我展示的leaflet地图。
在最初加载leaflet地图之后,我的问题是当我想要刷新地图时。
我总是会得到“Map container is already initialized”:
问题出在这一行:
var map = L.map('mapa').setView([lat, lon], 15);
一开始加载得很好,但当我在表单中选择另一个参数并想再次显示地图时,它就会崩溃。
顺便说一句,我尝试在第二次setView()
之前使用jQuery销毁和重新创建$('#mapa')
,但仍然显示相同的错误。
Jest
进行单元测试时,曾经遇到过类似于nuxt-leaflet
的错误,但现在无法再次复现。根据测试,我可以通过创建一个虚拟div
来解决它。const dummyDiv: HTMLDivElement = global.document.createElement("div"); const dummyID: string = "dummyID"; dummyDiv.setAttribute("id", dummyID); global.document.body.appendChild(dummyDiv);`
然后在shallowMount
中将其附加:wrapper = shallowMount(MapLeaflet, { attachTo: dummyDiv, localVue, store, stubs: { NuxtLink: RouterLinkStub, }, });
- Daniel Danielecki