最后创建的元素不是我删除的那个

The last created element isn't the one I dropped

我必须执行拖放程序,所以我使用 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-model,而是使用 list 道具,因为据我了解,我不能将 v-model 放在 VueJS 中的渲染元素上。

第二个列表中的可拖动元素没有 key 属性,因为我不希望它们重新生成。

也许我需要指定 draggable 应该如何将元素添加到第二个列表?

有人知道吗?

The elements draggable on the second list doesn't have the key prop because i don't want them to regenerate.

您需要 key 道具。否则 Vue 无法正确跟踪元素的顺序。