javascript - Vue3 vue-draggable-next 配置问题
问题描述
我试图仅包含所有相关代码。这适用于 Vue3 和 VueDraggableNext。我想更改列表的顺序,而不是在列表之间移动它。
以下是模板和相关的脚本:
<template>
<div class="childBox scripts">
<draggable
v-model="data.scriptList"
element="div"
class="dragArea"
item-key="id"
>
<template
#item="{item}"
element="div"
class="selectedItems"
item-key="id"
:ref="item.label"
>
<span>{{item.label}}</span>
<span class="remove" v-on:click="removeScript(item.id)"></span>
</template>
</draggable>
</div>
</template>
import {ref} from 'vue';
import VueDraggableNext from 'vue-draggable-next';
export default {
name: 'Scheduler',
components: {
Draggable: VueDraggableNext
},
setup() {
const data = ref({
scriptList: [
{"id": 3, "label": "Yadda"},
{"id": 2, "label": "Badda"},
{"id": 13, "label": "Bing" }
]
});
return {
data
};
},
methods: {
removeScript: function(id) {
//code here, but irrelevant.
},
上面的代码中没有呈现任何内容,除了:
<draggable modelvalue="" element="div" class="dragArea" item-key="id"></draggable>
如果我用 v-for 替换可拖动部分,它会呈现,但当然没有可拖动操作:
<div v-for="item in data.scriptList"
:key="item.id"
class="selectedItems list-group-item"
:ref="item.label">
<span>{{ item.label }}</span>
<span class="remove" v-on:click="removeScript(item.id)"></span>
</div>
解决方案
这似乎是一个错字。您使用大写字母 D 导入组件,但在模板中使用小写字母 d。它们应该是相同的——在组件声明中称它为可拖动的。
您还需要将 VueDraggableNext 作为 'vue-draggable-next' 的一部分导入,因此名称需要用花括号括起来。
import { VueDraggableNext } from 'vue-draggable-next';
components: {
draggable: VueDraggableNext
},
<draggable
v-model="data.scriptList"
element="div"
class="dragArea"
item-key="id"
>
推荐阅读
- python - 是否可以从 Plotly Dash、dcc.store 中的值动态加载 dcc.Dropdown 选项?
- flutter - 有什么方法可以通过 Flutter 中的条件弹回之前的路线?
- kong - Kong JS 插件 - 断管错误 - 大负载大小 - 223.86 KB 大小
- flutter - 如何从中心顶部剪裁容器
- autodesk-forge - Forge Viewer:取消合并后如何合并?
- python - 我可以使用具有常量变量名称的 Pydantic 模型,然后使用它们的值引用它们吗?
- sql-server - MS SQL将字符串转换为日期时间问题
- android - 颤振 pubspec.yaml 退出代码 65
- docker - 在使用 Gitlab Operator for vuejs App 创建的 Gitlab 运行器实例中获取“无法获取 oom 杀戮计数”
- reactjs - 有没有办法使用 react-table 访问单个表列中不同访问器的两个列值?