VueJS 3 可拖动问题

VueJS 3 draggable issues

我正在使用带有“vue-draggable-next”的 VueJS 3:“^2.1.1”。

当我尝试拖动时没有任何反应。

我在 HTML 中看到了这个:

<div class="flex m-10" data-v-52c58f0f="">

<draggable list="[object Object],[object Object],[object Object],[object Object]" data-v-52c58f0f="">
 <div class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center" data-v-52c58f0f="">John</div> 
<div class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center" data-v-52c58f0f="">Joao</div> 
<div class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center" data-v-52c58f0f="">Jean</div>
<div class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center" data-v-52c58f0f="">Gerard</div>`
 </draggable>


</div>

当我实现这样的代码时:

import { VueDraggableNext } from "vue-draggable-next";

components: { draggable: VueDraggableNext },

list: [

      { name: 'John', id: 1 },
      { name: 'Joao', id: 2 },
      { name: 'Jean', id: 3 },
      { name: 'Gerard', id: 4 },
  ],

我是我已经尝试过的模板:

<draggable class="dragArea list-group w-full" :list="list" @change="log">
  <div
    class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center"
    v-for="element in list"
    :key="element.name"
  >
    {{ element.name }}
 </div>
</draggable>

还有这个:

   <draggable
        :list="list"
        :disabled="!enabled"
        item-key="name"
        class="list-group"
        ghost-class="ghost"
        :move="checkMove"
        @start="dragging = true"
        @end="dragging = false"
      >
        <template #item="{ element }">
          <div class="list-group-item" :class="{ 'not-draggable': !enabled }">
            {{ element.name }}
          </div>
        </template>
      </draggable>

在我使用的情况下

<template #item="{ element }">

没有显示任何内容,在另一种情况下,没有任何内容是可拖动的。

组件已加载,我可以通过 Chrome 的 Vue 扩展看到它:

有谁知道为什么它不起作用?

你没有正确导入 vue 可拖动包。
这样做:

import { VueDraggableNext } from "vue-draggable-next";

然后像这样使用它:

<draggable :list="list">     
<div
    class="list-group-item bg-gray-300 m-1 p-3 rounded-md text-center"
    v-for="element in list"
    :key="element.name"
  >
    {{ element.name }}
 </div>
 </draggable>

希望有用!!

编辑:这是一个例子,为什么你应该 post 你的整个代码...

因此,在尝试了数小时不同的事情之后,我发现我已经添加了 components: 到 data()。 现在,它可以正常工作了:

export default {
     components: {
    draggable: VueDraggableNext   },

这就是我在做的事情:

data() {
    return {
      components: {
        draggable: VueDraggableNext
      },

希望这对以后的人有所帮助...