Как изменить размер карты mapboxgl при / перед инициализацией?

#vue.js #vuejs2 #mapbox #mapbox-gl

#vue.js #vuejs2 #mapbox #mapbox-gl

Вопрос:

Я использую Vue 2.x и этот плагин: https://www.npmjs.com/package/mapbox-gl-vue

Я показываю карту с некоторыми маркерами на ней. Карта не является модальной (абсолютная позиция — это может быть проблемой). Когда карта загружается в первый раз, она не может выбрать нужный размер.

CSS:

 .mapboxgl-map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
  margin: 20px 5px 0;
  transition: all 0.3s;
}
 

код компонента:

 <modal>
...
 <mapbox
        :map-options="{
            style: mapStyle,
            center: [lat, lng],
            zoom: 3,
            onStyleLoad: map => map.resize()
         }"
        @map-load="loaded"
          />

</modal>
 

загружена функция ()

  loaded(map) {
      map.resize()
      map.on('idle',function(){
        map.resize()
      })

      ...
    },
 

В течение первых 1-2 секунд размер карты нарушается, и это создает плохой UX. Карта соответствует родительскому контейнеру, но она размыта и странно растянута.
Вызов функции map.resize(), похоже, решает проблему, но, похоже, функция вызывается слишком поздно…. Когда я смогу запустить функцию map.resize(), чтобы быстрее изменить размер этой карты?

Если это не причина…Что может вызвать это?