首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Ant设计列表中使用react-beautiful dnd?

在React项目中将react-beautiful-dnd与Ant Design的列表组件(如ListTable)结合使用,可以创建一个可拖拽的列表界面。这种结合可以提高用户界面的交互性和视觉吸引力。下面是一个基本的步骤指南,展示如何在Ant Design的List组件中实现react-beautiful-dnd

步骤 1: 安装必要的包

首先,确保你的项目中已经安装了react-beautiful-dndantd。如果还没有安装,可以通过npm或yarn来安装它们:

代码语言:javascript
复制
npm install react-beautiful-dnd antd

或者

代码语言:javascript
复制
yarn add react-beautiful-dnd antd

步骤 2: 设置基本的List组件

在你的React组件中,首先设置一个基本的Ant Design List,用于显示数据。

代码语言:javascript
复制
import React from 'react';
import { List } from 'antd';

const data = ['Item 1', 'Item 2', 'Item 3'];

const MyList = () => {
  return (
    <List
      bordered
      dataSource={data}
      renderItem={item => (
        <List.Item>
          {item}
        </List.Item>
      )}
    />
  );
};

export default MyList;

步骤 3: 集成 react-beautiful-dnd

接下来,将react-beautiful-dnd集成到你的列表中。你需要使用DragDropContextDroppable以及Draggable组件来包装你的列表项。

代码语言:javascript
复制
import React, { useState } from 'react';
import { List } from 'antd';
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';

const initialData = ['Item 1', 'Item 2', 'Item 3'];

const MyDraggableList = () => {
  const [items, setItems] = useState(initialData);

  const onDragEnd = (result) => {
    if (!result.destination) {
      return;
    }

    const newItems = Array.from(items);
    const [removed] = newItems.splice(result.source.index, 1);
    newItems.splice(result.destination.index, 0, removed);

    setItems(newItems);
  };

  return (
    <DragDropContext onDragEnd={onDragEnd}>
      <Droppable droppableId="droppable">
        {(provided, snapshot) => (
          <List
            {...provided.droppableProps}
            ref={provided.innerRef}
            bordered
          >
            {items.map((item, index) => (
              <Draggable key={item} draggableId={item} index={index}>
                {(provided, snapshot) => (
                  <List.Item
                    ref={provided.innerRef}
                    {...provided.draggableProps}
                    {...provided.dragHandleProps}
                  >
                    {item}
                  </List.Item>
                )}
              </Draggable>
            ))}
            {provided.placeholder}
          </List>
        )}
      </Droppable>
    </DragDropContext>
  );
};

export default MyDraggableList;

步骤 4: 样式和调整

react-beautiful-dnd提供了拖拽时的基本样式和动画,但你可能需要根据你的设计需求进行调整。你可以添加CSS来改进拖拽时的视觉反馈,例如改变背景色或边框。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

做了N+1个企业项目之后, 我总结了这些React必备插件

Ant design 基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级后台产品 Ant design mobile 基于 Ant Design 设计体系的 React...UI 移动端组件库 MaterialUI 世界最受欢迎的基于质感设计的React UI库 React toolbox 一套使用CSS模块功能实现Google的Material Design规范的React...组件 React Virtualized 一个能渲染大型列表和表格的React解决方案 Fabric UI 微软开源的UX框架的集合,用于创建共享代码,设计和交互行为的精美的跨平台应用程序 React...AntV 包含 G2、G6、F2、L7 以及一套完整的图表使用设计规范, 提供强大的数据可视化需求 G2Plot 基于G2封装的开箱即用的可视化组件库 recharts 使用React和D3构建的自定义的图表库...react-beautiful-dnd 漂亮,可移植性 列表拖拽库 react-dnd 可帮助我们构建复杂的拖放界面,同时保持组件的分离 react-moveable 支持自由拖拽, 缩放, 参考线的灵活强大的拖拽库

2K10
  • 推荐 8 个很棒的 React 工具库,强烈建议收藏~

    UI组件库 Ant Design 要说 React 最受欢迎的 UI 组件库,那么我第一个想到的就是 Ant Design,Ant Design 提供了数十种常用的组件,比如 Button,Menu ,...而且在 github 上已经取得 74.6k+ 的 star 1.jpg 参考官网:https://ant.design/index-cn 项目地址:https://github.com/ant-design...6.jpg 状态管理工具 Dvajs Dvajs 是基于 redux , react-redux ,redux-saga 的状态管理工具, 在 dva ,同步触发的 reducers ,异步触发 effects...9.jpg 拖拽库 React dnd React dnd 是 React 的一个推拽库,用起来还是比较得心应手的。react-dnd 在 github 上得到了 16.4k+ 的 star。...10.jpg 参考官网:https://react-dnd.github.io/react-dnd/docs/overview 项目地址:https://github.com/react-dnd/react-dnd

    1.1K10

    「React进阶」 推荐 8 个很棒的 React 工具库,强烈建议收藏~

    UI组件库 Ant Design 要说 React 最受欢迎的 UI 组件库,那么我第一个想到的就是 Ant Design,Ant Design 提供了数十种常用的组件,比如 Button,Menu ,...而且在 github 上已经取得 74.6k+ 的 star 1.jpg 参考官网:https://ant.design/index-cn 项目地址:https://github.com/ant-design...6.jpg 状态管理工具 Dvajs Dvajs 是基于 redux , react-redux ,redux-saga 的状态管理工具, 在 dva ,同步触发的 reducers ,异步触发 effects...9.jpg 拖拽库 React dnd React dnd 是 React 的一个推拽库,用起来还是比较得心应手的。react-dnd 在 github 上得到了 16.4k+ 的 star。...10.jpg 参考官网:https://react-dnd.github.io/react-dnd/docs/overview 项目地址:https://github.com/react-dnd/react-dnd

    1.4K20

    总结100+前端优质库,让你成为前端百事通

    , 并且可以在 React、Vue、Angular 项目中使用 「Scroll Reveal」 零依赖,为 web 和移动浏览器提供了简单的滚动动画,以动画的方式显示滚动的内容 「Kute.js」 一个强大高性能且可扩展的原生...design 用于研发企业级后台产品的 UI 组件库 Ant design mobile 基于 Ant Design 设计体系的 React UI 移动端组件库 MaterialUI 世界最受欢迎的基于质感设计的...React 的表情库 react-highlight-words 基于 React 的关键字高亮 WaterMark 水印组件 数据可视化 AntV 包含 G2、G6、F2、L7 以及一套完整的图表使用设计规范...排序 react-beautiful-dnd 漂亮,可移植性 列表拖拽库 react-dnd 可帮助我们构建复杂的拖放界面,同时保持组件的分离 react-moveable 支持自由拖拽, 缩放, 参考线的灵活强大的拖拽库...react-grid-layout 强大的网格拖拽排序缩放库 mixitup 强大且高性能的列表卡片排序动画库 动画/动效果 Halogen 使用 React 的加载动画集合 react-loading

    3.2K20

    回望过去,展望未来- 2024 React 生态一览表

    「如果大家对这些概念熟悉,可以直接忽略」 同时,由于阅读我文章的群体有很多,所以有些知识点可能「我视之若珍宝,尔视只草芥,弃之敝履」。以下知识点,请「酌情使用」。...「端到端测试(End-to-End Testing):」 端到端测试是对「整个应用」进行测试,模拟用户的实际使用场景。这类测试通常涉及到模拟用户在浏览器的交互,点击、输入等。...Ant Design Ant Design[16] 是一个用于构建企业级 React 应用程序的综合设计系统和组件库。它在国内的地位属于老大的地位呢。 2....(在我的待写清单,其实有一篇关于draggable的内容,等哪天总结一下,给大家分享出来) 解决方案 DND Kit[37] 用于拖放功能 DND Kit 是一个功能强大的库,用于为我们的 React...它提供了一种简单且可定制的方式来实现重新排序、重新排列或组织用户界面的元素的拖放功能。 react-dnd[38]这是一个老牌的Dnd库。

    69610

    【前端拖拽组件库】最强开源高性能组件库Pragmatic-drag-and-drop简介与分析

    使用场景分析:1)Pragmatic-drag-and-drop是否适合引入到我的已有的前端系统来?...Pragmatic-drag-and-drop已经完成了很多用户设计指南,其中体现了我们希望如何在产品实现拖放,其中一些决策体现在一些可选包。当然,也运行可以自由使用喜欢的任何设计语言。...可选辅助控件基于 Atlassian 设计系统。如果不想使用 Atlassian Design System,可以根据用户指南,替换为我们自己的组件。...react-beatiful-dnd和pragmatic-drag-and-drop的技术流程图,可以看的出来pragmatic-drag-and-drop通过极其简单的架构完成了拖拽功能设计的复杂技术流程...'lightgrey' : 'white';}3.移动棋子最后实现棋子在掉落时移动方块,我们将使用monitorForElements实用的拖放功能。监视器允许从代码库的任何位置观察拖放交互。

    2.7K21

    有趣的拖放案例

    问题**在epilot,我们在应用程序的不同部分广泛使用了react-beautiful-dnd。然而,在尝试一些复杂的场景时,我们在某些情境遇到了一些障碍,它无法准确预测元素的放置位置。...dnd-kit的关键优势包括:零依赖优化的性能可访问性支持多种输入方法全面的文档和示例演示代码这里是使用两个库进行简单拖放的代码。...} );};在这两个具有相同功能的代码示例,你可以看出dnd-kit的复杂性更高,但也更全面。...在我们的场景,我们希望在拖动期间显示元素及其子元素的精简版本,因此我们使用了带有React portal的DragOverlay。...排序策略 - 同样,它提供了不同的排序策略,使垂直列表、水平列表或网格的排序成为可能。我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

    25600

    前端里的拖拖拽拽了解一下?

    最近在项目中使用了 react-dnd[1],一个基于 HTML5 的拖拽库,“拖拽能力”丰富了前端的交互方式,基于拖拽能力,会扩展各种各样的拖拽反馈效果,因此有必要学习了解,最好的学习方式就是实操!...一、HTML5 的拖放 拖(Drag)和放(Drop)是 HTML5 标准的组成部分,了解掌握之后,举一反三,有助于提升我们在拖拽场景下技术方案的设计能力。...如果该类型的数据不存在,则将其添加到末尾,以便类型列表的最后一项将是新的格式。如果该类型的数据已经存在,则在相同位置替换现有数据。...2.1 设计实现 结合上述的 Drag & Drop 的事件类型,那么拖拽排序主要是针对“拖动对象”之间相互作用关系的逻辑梳理,此处我们暂且区分为: 源对象: 拖拽列表中被拖动的单个列表项 目标对象:...拖拽列表中和“源对象”产生“相互作用”的列表项 整体的交互事件的设计思路如下: (1) ondragstart 此时开始拖拽“源对象”的时机,在此事件回调函数改变“源对象”的样式,设置拖拽的一些传递参数等初始值

    4.9K30

    基于 HTML5 Canvas 的工控机柜 U 位动态管理

    设计为能放置到 19 英寸机柜的产品一般被称为机架服务器。...布局结束记得将最外层组件的最底层 div 添加到 body ,HT 的组件一般都会嵌入 BorderPane、SplitView 和 TabView 等容器中使用,而最外层的HT组件则需要用户手工将...this.rackBuild) { this.rackBuild = new RackBuild(this);// 此类定义了场景的中间列表部分,右边拓扑图部分以及对应的逻辑...form 表单进行显示,同时还设计了两个按钮,“OK”按钮作为执行创建/更改机柜的属性,“Cancel”按钮不执行其他操作,只是将对话框隐藏: ?...= listView.getDataAt(e);// 传入逻辑坐标点或者交互event事件参数,返回当前点下的数据元素 listView.sm().ss(data);// 在拖拽的过程设置列表组件的被拖拽的元素被选中

    2.4K40

    整理了12款开源拖拽库, 轻松上手可视化搭建

    」 是一组 「React」 高阶组件,使用的时候只需要使用对应的 「API」 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。...「github:」 https://github.com/madrobby/scriptaculous 6. react-beautiful-dnd 漂亮,可移植性 列表拖拽库....有很多库允许React的拖放交互. 其中最值得注意的是惊人的「react-dnd」. 它提供了一套非常出色的拖放函数,这些函数在特定情况下非常适用疯狂地不一致的html5拖放功能....「react-beautiful-dnd」 是为垂直和水平列表专门构建的更高级别的抽象. 在该功能的子集内「react-beautiful-dnd」提供强大,自然和美丽的拖放体验....Formily 在 React ,在受控模式下,表单的整树渲染问题非常明显。

    1.4K20

    前端10大开源拖拽排序库汇总, 让搭建,更简单

    」 是一组 「React」 高阶组件,使用的时候只需要使用对应的 「API」 将目标组件进行包裹,即可实现拖动或接受拖动元素的功能。...「github:」 https://github.com/madrobby/scriptaculous 6. react-beautiful-dnd 漂亮,可移植性 列表拖拽库....有很多库允许React的拖放交互. 其中最值得注意的是惊人的「react-dnd」. 它提供了一套非常出色的拖放函数,这些函数在特定情况下非常适用疯狂地不一致的html5拖放功能....「react-beautiful-dnd」 是为垂直和水平列表专门构建的更高级别的抽象. 在该功能的子集内「react-beautiful-dnd」提供强大,自然和美丽的拖放体验....Formily 在 React ,在受控模式下,表单的整树渲染问题非常明显。

    5.9K21

    20个惊艳的React组件库,每一个都值得收藏(上)

    易于使用:React Beautiful DND提供了一个简单而强大的API,使得实现复杂的拖拽逻辑变得简单。即使是拖拽列表和网格,也可以通过少量的代码轻松完成。...实际应用场景 React Beautiful DND非常适合那些需要提供拖拽排序、列表管理等交互功能的应用。无论是任务管理工具、电子邮件客户端,还是内容管理系统,它都能够提供优雅而高效的解决方案。...使用场景 React JSON View特别适合用于开发需要展示JSON数据的应用,API测试工具、开发调试面板、配置管理界面等。...加载远程数据的应用,新闻站点或电子商务平台,在数据请求过程显示进度。 文件上传或下载界面,提供进度反馈。...丰富的样式选择:提供多种内置样式,也支持自定义样式,满足不同设计需求。 易于使用:通过简单的组件封装,可以轻松地在React组件引入和使用,实现代码的高亮显示。

    1.2K12

    基于 HTML5 的工业互联网云平台监控机房 U 位 顶

    布局结束记得将最外层组件的最底层 div 添加到 body ,HT 的组件一般都会嵌入 BorderPane、SplitView 和 TabView 等容器中使用,而最外层的HT组件则需要用户手工将...this.rackBuild) { this.rackBuild = new RackBuild(this);// 此类定义了场景的中间列表部分,右边拓扑图部分以及对应的逻辑...form 表单进行显示,同时还设计了两个按钮,“OK”按钮作为执行创建/更改机柜的属性,“Cancel”按钮不执行其他操作,只是将对话框隐藏: ?...= listView.getDataAt(e);// 传入逻辑坐标点或者交互event事件参数,返回当前点下的数据元素 listView.sm().ss(data);// 在拖拽的过程设置列表组件的被拖拽的元素被选中...列表组件过滤 ? 会不会有同学对列表栏顶部的 form 表单做过滤有些好奇?

    1.5K30

    可视化搭建移动端店铺解决方案

    原文地址:https://juejin.cn/post/6979410699453726727 文章已经过作者许可转载 前言 经过许久的深思熟虑与探索,同时也借鉴了行业内不错的产品(:有赞,H5...目前我所在公司是零售行业的领头羊)和电商系统应该很常见,很多应用场景都会用到,像产品营销页面、企业/个人微官网、H5活动页面等移动端页面,通过可视化配置快速搭建H5页面,且提供丰富的页面组件,更方便的为使用者搭建更强大的...技术方案 PC端 React 技术栈,移动端 UniApp 跨平台框架,功能的设计结构图如下: ?...通过上面的设计结构图可以看出PC端最后会生成一份 schema 数据存储服务端,移动端从服务端获取到 schema 数据进行解析。...; } if (monitor.didDrop()) { // 判断拖拽放入Preview组件

    1.7K10

    可视化搭建移动端店铺解决方案

    原文地址:https://juejin.cn/post/6979410699453726727 前言 经过许久的深思熟虑与探索,同时也借鉴了行业内不错的产品(:有赞,H5-Dooring等)...目前我所在公司是零售行业的领头羊)和电商系统应该很常见,很多应用场景都会用到,像产品营销页面、企业/个人微官网、H5活动页面等移动端页面,通过可视化配置快速搭建H5页面,且提供丰富的页面组件,更方便的为使用者搭建更强大的...技术方案 PC端 React 技术栈,移动端 UniApp 跨平台框架,功能的设计结构图如下: ?...通过上面的设计结构图可以看出PC端最后会生成一份 schema 数据存储服务端,移动端从服务端获取到 schema 数据进行解析。...; } if (monitor.didDrop()) { // 判断拖拽放入Preview组件

    1.3K20
    领券