Skip to content

Кластеры и keep-alive #486

Description

@dimquea

Версия библиотеки

2.2.1

Как воспроизвести

Структура моего проекта:

App.vue

...
<router-view
  v-slot="{ Component }"
>
  <keep-alive :include="['MapView']">
    <component :is="Component" />
  </keep-alive>
</router-view>
...

MapView.vue

...
<MapMain
  :objects="objects"
></MapMain>
...

MapMain.vue

...
<yandex-map>
  <yandex-map-clusterer :grid-size="2 ** gridSize" :settings="{maxZoom: 16}" zoom-on-cluster-click>
    <template v-for="(object, id) in objects" :key="id">
      <yandex-map-marker
        :id="id"
        position="top left-center"
        :settings="{
          id: id,
          coordinates: [object.longitude, object.latitude],
          hideOutsideViewport: true,
        }"
      >
        <div
          class="marker"
        >
          <img :src="object.image_preview" />
        </div>
      </yandex-map-marker>
    </template>
    <template #cluster="{ length }">
      <div class="marker cluster">
        <div>
          <span>{{ length }}</span>
        </div>
      </div>
    </template>
  </yandex-map-clusterer>
</yandex-map>
...

Опишите проблему

Если карта находится внутри keep-alive, после деактивации-активации дублируются кластеры, дубли остаются на последней позиции, не интерактивны. Если повторить деактивацию-активацию появляются новые дубли, существующие остаются на старых местах.

Пример на скриншотах

Image Image

Дополнительная информация

No response

Ответы на вопросы

  • Я использую версию 2.x
  • Я поискал похожие ошибки и не нашел таковых

Metadata

Metadata

Assignees

Labels

3.xbugSomething isn't workingquestionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions