使用卡片实现 Vue 可拖动?
Implementing Vue draggable with cards?
我正在尝试使用 Vuetify Cards 实现 vuedraggable
,但由于某些原因,当卡片在一行中时拖放不起作用,但在它们在一列中时拖放有效。
检查这个工作 CodeSandbox。
在 Parent.vue
文件中,如果我删除包裹 <HelloWorld />
组件的 <v-layout> </v-layout>
,卡片将进入一列,拖放操作再次开始工作。
这是我的 HelloWorld 组件:-
<template>
<v-flex xs4>
<v-card class="mx-4">
<v-img :src="src"></v-img>
<v-card-title primary-title>
<div>{{title}}</div>
</v-card-title>
</v-card>
</v-flex>
</template>
<script>
export default {
name: "HelloWorld",
props: {
title: String,
src: String,
id: Number
},
data() {
return {};
}
};
</script>
这是我的父组件:-
<template>
<v-container>
<v-layout class="mt-5 align-center justify-center row fill-height">
<h2>Parent Component</h2>
</v-layout>
<draggable v-model="draggableCards">
<v-layout>
<template v-for="(tech,i) in getCardArray">
<HelloWorld :src="tech.src" :title="tech.title" :key="i"/>
</template>
</v-layout>
</draggable>
</v-container>
</template>
<script>
import { mapGetters, mapMutations } from "vuex";
import HelloWorld from "./HelloWorld";
import draggable from "vuedraggable";
export default {
components: {
draggable,
HelloWorld
},
computed: {
...mapGetters({
getCardArray: "getCardArray"
}),
draggableCards: {
get() {
return this.$store.state.cardArray;
},
set(val) {
this.$store.commit("setCardArray", val);
}
}
},
methods: {
...mapMutations({
setCardArray: "setCardArray"
})
}
};
</script>
如果有人能帮我解决这个问题,我将不胜感激。谢谢。
尝试将可拖动容器用作v-layout
,例如:
<draggable tag="v-layout" v-model="draggableCards">
您可以查看代码here
我正在尝试使用 Vuetify Cards 实现 vuedraggable
,但由于某些原因,当卡片在一行中时拖放不起作用,但在它们在一列中时拖放有效。
检查这个工作 CodeSandbox。
在 Parent.vue
文件中,如果我删除包裹 <HelloWorld />
组件的 <v-layout> </v-layout>
,卡片将进入一列,拖放操作再次开始工作。
这是我的 HelloWorld 组件:-
<template>
<v-flex xs4>
<v-card class="mx-4">
<v-img :src="src"></v-img>
<v-card-title primary-title>
<div>{{title}}</div>
</v-card-title>
</v-card>
</v-flex>
</template>
<script>
export default {
name: "HelloWorld",
props: {
title: String,
src: String,
id: Number
},
data() {
return {};
}
};
</script>
这是我的父组件:-
<template>
<v-container>
<v-layout class="mt-5 align-center justify-center row fill-height">
<h2>Parent Component</h2>
</v-layout>
<draggable v-model="draggableCards">
<v-layout>
<template v-for="(tech,i) in getCardArray">
<HelloWorld :src="tech.src" :title="tech.title" :key="i"/>
</template>
</v-layout>
</draggable>
</v-container>
</template>
<script>
import { mapGetters, mapMutations } from "vuex";
import HelloWorld from "./HelloWorld";
import draggable from "vuedraggable";
export default {
components: {
draggable,
HelloWorld
},
computed: {
...mapGetters({
getCardArray: "getCardArray"
}),
draggableCards: {
get() {
return this.$store.state.cardArray;
},
set(val) {
this.$store.commit("setCardArray", val);
}
}
},
methods: {
...mapMutations({
setCardArray: "setCardArray"
})
}
};
</script>
如果有人能帮我解决这个问题,我将不胜感激。谢谢。
尝试将可拖动容器用作v-layout
,例如:
<draggable tag="v-layout" v-model="draggableCards">
您可以查看代码here