Последний созданный элемент не тот, который я уронил - PullRequest
0 голосов
/ 15 ноября 2018

Мне нужно сделать программу перетаскивания, поэтому я использую Vue.Draggable , но когда я помещаю свой элемент во второй список, последний созданный элемент в этом списке - это не тот, который я отбросил, атот, кто заменил значение.

Так, например, если у меня есть такой массив перетаскивания:

var a = [
    {
        name: 'element1'
    },
    {
        name: 'element2'
    },
    ...
]

, и я отбрасываю элемент перед первым элементом второго списка, последнимСозданный элемент будет 'element1', и мне нужна моя программа, чтобы последний созданный элемент был отброшен

Я не знаю, как это делает Vue.Draggable, но когда у меня был программный элемент где-то во втором спискевот так secondList.splice(3, 0, newElement) последний созданный элемент - это тот, который я хочу (newElement)

Вот код из первого списка:

<draggable v-model="blocks" :clone="clone" :options="draggableOptions" @end="reGenerateUuid">
    <block
        v-for="b in blocks"
        :key="b.props.uuid"
        :title="b.title"
        :image="b.image"
        @click.native="addBlock(blocks[key])" />
</draggable>

второй список - это отрендеренный компонент, поэтому я могуне делюсь этим, потому что это массивно.Во втором списке не используется v-модель с перетаскиваемым компонентом, а опора list, потому что, как я понял, я не могу поместить v-модель в визуализированный элемент в VueJS.

ЭлементыDraggable во втором списке не имеет key проп, потому что я не хочу, чтобы они регенерировали.

Может быть, мне нужно указать, как draggable должен добавить элемент во второй список?

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 15 ноября 2018

Элементы, перетаскиваемые во втором списке, не имеют ключевой опоры, потому что я не хочу, чтобы они регенерировали.

Вам нужна key опора.В противном случае Vue неправильно отслеживает порядок элементов.

...