PrimeVue DataTable拖拽重排在触摸设备上失效,是否有解决方案或属版本限制?
PrimeVue DataTable行/列拖拽重排在移动端失效问题
我使用Vue 3.3.x + PrimeVue 3.52.0开发Vue 3应用,通过reorderableColumns和rowReorder属性为DataTable开启了行与列的拖拽重排功能。该功能在桌面浏览器中正常工作,但在iOS Safari、Android Chrome等移动设备上测试时,触摸事件完全无法触发拖拽重排,没有任何响应。
简化示例代码
<template> <DataTable :value="data" reorderableColumns rowReorder> <Column field="name" header="Name" /> <Column field="age" header="Age" /> <Column field="job" header="Job" /> </DataTable> </template> <script setup> import { ref } from 'vue' import DataTable from 'primevue/datatable' import Column from 'primevue/column' const data = ref([ { name: 'Alice', age: 30, job: 'Developer' }, { name: 'Bob', age: 25, job: 'Designer' }, { name: 'Charlie', age: 35, job: 'Manager' } ]) </script>
已尝试的无效方案
- 在CSS中添加
touch-action: none; - 使用
rowReorderIcon自定义插槽
另外我在GitHub上发现其他用户也反馈了相同问题,目前尚未得到解决,甚至PrimeVue官方文档中的示例在移动端也存在同样的拖拽失效问题。
请问有没有已知的解决方法可以在触摸设备上启用行/列拖拽重排?或者这是当前PrimeVue实现的固有限制?
环境信息
- Vue 3.3.x
- PrimeVue 3.52.0
- Vite构建
- 测试设备:Android Chrome、iOS Safari
内容的提问来源于stack exchange,提问作者Abraham
相关产品推荐
相关产品推荐

