React中对表格实现列表的拖拽排序

本文介绍了在React中如何利用'react-sortable-hoc'库实现表格数据的拖拽排序功能。通过安装并引入该库,结合SortableContainer、SortableElement和SortableHandle组件,设置属性如axis、onSortEnd等,可以实现拖拽手柄进行行的水平或垂直拖拽排序,同时详细解释了onSortEnd方法处理拖拽结束后的元素位置交换操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 效果:推拽手柄列

在这里插入图片描述

2. 实现: react中我们需要两个包来实现

  • ‘array-move’
  • ‘react-sortable-hoc’

Installation

Use npm

$ npm install react-sortable-hoc --save

在这里插入图片描述
在这里插入图片描述

引入
import { arrayMoveImmutable } from 'array-move'
import { SortableContainer, SortableElement, SortableHandle } from 'react-sortable-hoc'

GitHub: react-sortable-hoc

官方

Basic Example

import React, {
   Component} from 'react';
import {
   render} from 'react-dom';
import {
   SortableContainer, SortableElement} from 'react-sortable-hoc';
import arrayMove from 'array-move';

const SortableItem = SortableElement((
React中,Ant Design是一个常用的UI库,提供了丰富的表格组件(Table)用于数据展示。若要在Ant Design Table中实现多级嵌套的拖拽排序和多选功能,你需要结合其提供的Column、Form、Draggable以及Selection components。以下是一个概述: 1. **列配置** (Column): 使用`children`属性可以创建嵌套结构。你可以设置`sorter`属性使其支持排序,并在需要的地方启用`draggable`属性以便于拖拽。 ```jsx import { Column } from 'antd'; // 嵌套列示例 const nestedColumns = [ { title: '父列', children: [ { title: '子列1', sorter: true, draggable: true, // ...其他配置 }, { // 同样可以设置拖拽排序和多选属性 }, ], }, ]; ``` 2. **表格组件** (Table): 利用`onRow`回调处理行的复杂交互,比如在拖拽事件中更新数据状态,并通过`selection`属性控制多选。 ```jsx import { Table } from 'antd'; const { Column, SelectionModel } = Table; const selection = new SelectionModel({ // 初始化选择模式,如checkbox或多选 type: 'checkbox', }); // 更新表格状态,当有行被拖动 function handleSortChange(recordIndex, order) { // 更新数据模型的排序 } function handleSelectChange(selections) { // 根据选择的行操作数据 } <Table columns={nestedColumns} rowKey="key" selection={selection} onRow={(record) => ({ ...record, onSortChange: handleSortChange.bind(null, record.index), onSelectChange: handleSelectChange.bind(null, selections), })} /> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值