Skip to content

react-dnd 拖拽排序 ​

卡片同时作为拖拽源和目标,在悬停时交换列表位置。

交互演示 React

亲手试一试,更容易理解。

在当前页面运行 react-dnd 拖拽排序 的交互示例。

交互指南 ​

  1. 按住一张卡片。
  2. 拖过其他卡片观察顺序变化。
  3. 松开结束拖拽,重置演示恢复初始列表。

在项目中运行 ​

点击本页的“运行演示”,或在独立窗口中体验示例。也可在 src 下的页面中直接挂载现有演示:

tsx
import Example from "./third-party-lib/react-dnd/react-dnd-2/DndPage2";

export default function ExamplePage() {
  return <Example />;
}

API 与实现要点 ​

名称类型或形式说明
Card.dataCardItemid 与 content
Card.indexnumber当前列表位置
Card.swapfunction交换来源与目标位置
DragDataobject拖拽载荷包含 id 与 index

使用边界 ​

此例在 hover 中交换位置,并更新拖拽项 index。排序只保存在当前组件状态,不会写入服务器。

源码位置 ​

  • 演示入口:src/third-party-lib/react-dnd/react-dnd-2/DndPage2.tsx
  • 相关实现:src/third-party-lib/react-dnd/react-dnd-2

在实践中理解 React,在分享中共同成长。