logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
YouMindTRACTIANLobeHub
6.4.3
  • Components Overview
  • Changelog
    v6.4.3
  • General
    • Button
    • FloatButton
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
    • Grid
    • Layout
    • Masonry
      6.0.0
    • Space
    • Splitter
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
    • Tabs
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
      DEPRECATED
    • Popover
    • QRCode
    • Segmented
    • Statistic
    • Table
    • Tag
    • Timeline
    • Tooltip
    • Tour
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
  • Other
    • Affix
    • App
    • BorderBeam
      6.4.0
    • ConfigProvider
    • Util
When To Use
Examples
Basic
One Way
Search
Advanced
Custom datasource
Custom Actions
Pagination
Table Transfer
Tree Transfer
Status
Custom semantic dom styling
API
Render Props
Warning
Semantic DOM
Design Token
FAQ
How to support fetch and present data from a remote server in Transfer column.

Transfer

Double column transfer choice box.
Importimport { Transfer } from 'antd';
GitHub
components/transferIssueOpen issues
Docs
Edit this pageLLMs.md
contributors
    TimePickerTreeSelect

    Resources

    Ant Design X
    Ant Design Charts
    Ant Design Pro
    Pro Components
    Ant Design Mobile
    Ant Design Mini
    Ant Design Web3
    Ant Design Landing-Landing Templates
    Scaffolds-Scaffold Market
    Umi-React Application Framework
    dumi-Component doc generator
    qiankun-Micro-Frontends Framework
    Ant Motion-Motion Solution
    China Mirror 🇨🇳

    Community

    Awesome Ant Design
    Medium
    X
    yuque logoAnt Design in YuQue
    Ant Design in Zhihu
    Experience Cloud Blog
    seeconf logoSEE Conf-Experience Tech Conference

    Help

    GitHub
    Change Log
    FAQ
    Bug Report
    Issues
    Discussions
    StackOverflow
    SegmentFault

    Ant XTech logoMore Products

    yuque logoYuQue-Document Collaboration Platform
    AntV logoAntV-Data Visualization
    Egg logoEgg-Enterprise Node.js Framework
    Kitchen logoKitchen-Sketch Toolkit
    Galacean logoGalacean-Interactive Graphics Solution
    WeaveFox logoWeaveFox-AI Development with WeaveFox 🦊
    xtech logoAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Ant Design Community
    loading

    When To Use

    • It is a select control essentially which can be used for selecting multiple items.
    • Transfer can display more information for items and take up more space.

    Transfer the elements between two columns in an intuitive and efficient way.

    One or more elements can be selected from either column, one click on the proper direction button, and the transfer is done. The left column is considered the source and the right column is considered the target. As you can see, these names are reflected in the API.

    notice: Transfer is a controlled component, uncontrolled mode is not supported.

    Examples

    API

    Common props ref:Common props

    PropertyDescriptionTypeDefaultVersion
    actionsA set of operations that are sorted from top to bottom. When an array of strings is provided, default buttons will be used; when an array of ReactNode is provided, custom elements will be usedReactNode[][>, <]6.0.0
    classNamesCustomize class for each semantic structure inside the component. Supports object or function.Record<SemanticDOM, string> | (info: { props })=> Record<SemanticDOM, string>-
    dataSourceUsed for setting the source data. The elements that are part of this array will be present the left column. Except the elements whose keys are included in targetKeys propRecordType extends TransferItem = TransferItem[][]
    disabledWhether disabled transferbooleanfalse
    selectionsIconcustom dropdown iconReact.ReactNode5.8.0
    filterOptionA function to determine whether an item should show in search result list, only works when searching, (add direction support since 5.9.0+)(inputValue, option, direction: left | right): boolean-
    footerA function used for rendering the footer(props, { direction }) => ReactNode-direction: 4.17.0
    listStyleA custom CSS style used for rendering the transfer columns. Use styles.section insteadobject | ({direction: left | right}) => object-
    localeThe i18n text including filter, empty text, item unit, etc{ itemUnit: string; itemsUnit: string; searchPlaceholder: string; notFoundContent: ReactNode | ReactNode[]; }{ itemUnit: item, itemsUnit: items, notFoundContent: The list is empty, searchPlaceholder: Search here }
    oneWayDisplay as single direction stylebooleanfalse4.3.0
    operationsA set of operations that are sorted from top to bottom. Use actions instead.string[][>, <]
    operationStyleA custom CSS style used for rendering the operations column. Use styles.actions instead.object-
    paginationUse pagination. Not work in render propsboolean | { pageSize: number, simple: boolean, showSizeChanger?: boolean, showLessItems?: boolean }false4.3.0
    renderThe function to generate the item shown on a column. Based on an record (element of the dataSource array), this function should return a React element which is generated from that record. Also, it can return a plain object with value and label, label is a React element and value is for title(record) => ReactNode-
    selectAllLabelsA set of customized labels for select all checkboxes on the header(ReactNode | (info: { selectedCount: number, totalCount: number }) => ReactNode)[]-
    selectedKeysA set of keys of selected itemsstring[] | number[][]
    showSearchIf included, a search box is shown on each columnboolean | { placeholder:string,defaultValue:string }false
    showSelectAllShow select all checkbox on the headerbooleantrue
    statusSet validation status'error' | 'warning'-4.19.0
    stylesCustomize inline style for each semantic structure inside the component. Supports object or function.Record<SemanticDOM, CSSProperties> | (info: { props })=> Record<SemanticDOM, CSSProperties>-
    targetKeysA set of keys of elements that are listed on the right columnstring[] | number[][]
    titlesA set of titles that are sorted from left to rightReactNode[]-
    onChangeA callback function that is executed when the transfer between columns is complete(targetKeys, direction, moveKeys): void-
    onScrollA callback function which is executed when scroll options list(direction, event): void-
    onSearchA callback function which is executed when search field are changed(direction: left | right, value: string): void-
    onSelectChangeA callback function which is executed when selected items are changed(sourceSelectedKeys, targetSelectedKeys): void-

    Render Props

    Transfer accept children to customize render list, using follow props:

    PropertyDescriptionTypeVersion
    directionList render directionleft | right
    disabledDisable list or notboolean
    filteredItemsFiltered itemsRecordType[]
    selectedKeysSelected itemsstring[] | number[]
    onItemSelectSelect item(key: string | number, selected: boolean)
    onItemSelectAllSelect a group of items(keys: string[] | number[], selected: boolean)

    example

    jsx
    <Transfer {...props}>{(listProps) => <YourComponent {...listProps} />}</Transfer>

    Warning

    According to the standard of React, the key should always be supplied directly to the elements in the array. In Transfer, the keys should be set on the elements included in dataSource array. By default, key property is used as a unique identifier.

    If there's no key in your data, you should use rowKey to specify the key that will be used to uniquely identify each element.

    jsx
    // eg. your primary key is `uid`
    return <Transfer rowKey={(record) => record.uid} />;

    Semantic DOM

    Design Token

    Component TokenHow to use?
    Token NameDescriptionTypeDefault Value
    headerHeightHeight of headerstring | number40
    itemHeightHeight of list itemstring | number32
    itemPaddingBlockVertical padding of list itemstring | number5
    listHeightHeight of liststring | number200
    listWidthWidth of liststring | number180
    listWidthLGWidth of large liststring | number250
    Global TokenHow to use?
    Token NameDescriptionTypeDefault Value
    colorBgContainerContainer background color, e.g: default button, input box, etc. Be sure not to confuse this with `colorBgElevated`.string#ffffff
    colorBgContainerDisabledControl the background color of container in disabled state.stringrgba(0,0,0,0.04)
    colorBorderDefault border color, used to separate different elements, such as: form separator, card separator, etc.string#d9d9d9
    colorErrorUsed to represent the visual elements of the operation failure, such as the error Button, error Result component, etc.string#ff4d4f
    colorLinkControl the color of hyperlink.string#1677ff
    colorLinkActiveControl the color of hyperlink when clicked.string#0958d9
    colorLinkHoverControl the color of hyperlink when hovering.string#69b1ff
    colorPrimaryBorderThe stroke color under the main color gradient, used on the stroke of components such as Slider.string#91caff
    colorSplitUsed as the color of separator, this color is the same as colorBorderSecondary but with transparency.stringrgba(5,5,5,0.06)
    colorTextDefault text color which comply with W3C standards, and this color is also the darkest neutral color.stringrgba(0,0,0,0.88)
    colorTextDisabledControl the color of text in disabled state.stringrgba(0,0,0,0.25)
    colorTextSecondaryThe second level of text color is generally used in scenarios where text color is not emphasized, such as label text, menu text selection state, etc.stringrgba(0,0,0,0.65)
    colorWarningUsed to represent the warning map token, such as Notification, Alert, etc. Alert or Control component(like Input) will use these map tokens.string#faad14
    borderRadiusLGLG size border radius, used in some large border radius components, such as Card, Modal and other components.number8
    controlHeightLGLG component heightnumber40
    controlItemBgActiveControl the background color of control component item when active.string#e6f4ff
    controlItemBgActiveHoverControl the background color of control component item when hovering and active.string#bae0ff
    controlItemBgHoverControl the background color of control component item when hovering.stringrgba(0,0,0,0.04)
    fontFamilyThe font family of Ant Design prioritizes the default interface font of the system, and provides a set of alternative font libraries that are suitable for screen display to maintain the readability and readability of the font under different platforms and browsers, reflecting the friendly, stable and professional characteristics.string-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'
    fontSizeThe most widely used font size in the design system, from which the text gradient will be derived.number14
    fontSizeIconControl the font size of operation icon in Select, Cascader, etc. Normally same as fontSizeSM.number12
    lineHeightLine height of text.number1.5714285714285714
    lineTypeBorder style of base componentsstringsolid
    lineWidthBorder width of base componentsnumber1
    lineWidthFocusControl the width of the line when the component is in focus state.number3
    linkDecorationControl the text decoration style of a link.TextDecoration<string | number> | undefinednone
    linkFocusDecorationControl the text decoration style of a link on focus.TextDecoration<string | number> | undefinednone
    linkHoverDecorationControl the text decoration style of a link on mouse hover.TextDecoration<string | number> | undefinednone
    marginXSControl the margin of an element, with a small size.number8
    marginXXSControl the margin of an element, with the smallest size.number4
    motionDurationSlowMotion speed, slow speed. Used for large element animation interaction.string0.3s
    paddingSMControl the small padding of the element.number12
    paddingXSControl the extra small padding of the element.number8

    FAQ

    How to support fetch and present data from a remote server in Transfer column.

    In order to keep the page number synchronized, you can disable columns you checked without removing the option: https://codesandbox.io/s/objective-wing-6iqbx

    Basic

    The most basic usage of Transfer involves providing the source data and target keys arrays, plus the rendering and some callback functions.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    One Way

    Use oneWay to make Transfer the one way style.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Search

    Transfer with a search box.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Advanced

    Advanced Usage of Transfer.

    You can customize the labels of the transfer buttons, the width and height of the columns, and what should be displayed in the footer.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom datasource

    Customize each Transfer Item, allowing you to render a complex datasource.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom Actions

    You can customize operations with the actions prop. This example demonstrates how to customize actions, including handling disabled and loading states.

    When actions is an array of strings, it will use the default Button component and set the strings as button text.

    When actions is an array of React elements, it will use these elements directly as action buttons, allowing you to use custom button components, such as buttons with loading state in this example.

    Note:

    1. When using custom buttons, the Transfer component will automatically handle the button's disabled state and click events.
    2. You can add a disabled property to your custom button to control its disabled state.
    3. You can add an onClick event handler to your custom button, which will be merged with the Transfer component's internal handler.
    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    6.0.0
    Pagination

    Store a large amount of items with pagination.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Table Transfer

    Customize the render list with a Table component.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Tree Transfer

    Customize the render list with a Tree component.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Status

    Add status to Transfer with status, which could be error or warning.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    Custom semantic dom styling

    You can customize the semantic dom style of Transfers by passing objects/functions through classNames and styles.

    CodeSandbox Icon
    Hitu Icon
    codepen icon
    External Link Icon
    Expand Icon
    6.0.0
    11 itemsSource
    • content1
    • content2
    • content3
    • content4
    • content5
    • content6
    • content7
    • content8
    • content9
    • content10
    • content11
    9 itemsTarget
    • content12
    • content13
    • content14
    • content15
    • content16
    • content17
    • content18
    • content19
    • content20
    14 itemsSource
    • content1
    • content2
    • content4
    • content5
    • content7
    • content8
    • content10
    • content11
    • content13
    • content14
    • content16
    • content17
    • content19
    • content20
    6 itemsTarget
    • content3
    • content6
    • content9
    • content12
    • content15
    • content18
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    11 items
    • Content 1
    • Content 2
    • Content 3
    • Content 4
    • Content 5
    • Content 6
    • Content 7
    • Content 8
    • Content 9
    • Content 10
    • Content 11
    9 items
    • Content 12
    • Content 13
    • Content 14
    • Content 15
    • Content 16
    • Content 17
    • Content 18
    • Content 19
    • Content 20
    0 item
    No data
    No data
    0 item
    No data
    No data

    20 items
    NameTagDescription
    content1CATdescription of content1
    content2DOGdescription of content2
    content3BIRDdescription of content3
    content4CATdescription of content4
    content5DOGdescription of content5
    content6BIRDdescription of content6
    content7CATdescription of content7
    content8DOGdescription of content8
    content9BIRDdescription of content9
    content10CATdescription of content10
    • 1
    • 2
    0 item
    NameTagDescription
    No data
    No data
    7 items
    0-0
    0-1
    0-1-0
    0-1-1
    0-2
    0-3
    0-4
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    0 item
    No data
    No data
    11 items
    • content1
    • content2
    • content3
    • content4
    • content5
    • content6
    • content7
    • content8
    • content9
    • content10
    • content11
    9 items
    • content12
    • content13
    • content14
    • content15
    • content16
    • content17
    • content18
    • content19
    • content20
    11 items
    • content1
    • content2
    • content3
    • content4
    • content5
    • content6
    • content7
    • content8
    • content9
    • content10
    • content11
    9 items
    • content12
    • content13
    • content14
    • content15
    • content16
    • content17
    • content18
    • content19
    • content20
    18 itemsSource
    • content 1
    • content 2
    • content 3
    • content 5
    • content 6
    • content 7
    • content 8
    • content 9
    • content 11
    • content 12
    • content 13
    • content 14
    • content 15
    • content 16
    • content 17
    • content 18
    • content 19
    • content 20
    Custom Footer
    2 itemsTarget
    • content 4
    • content 10
    Custom Footer
    • root
      Root element with flex layout, transfer container base styles and layout control
    • section
      Section element with flex layout, width, height, min height, border, border radius and other single-side transfer container styles
    • source.section
      6.4.0
      Source section element, only applies to left transfer section container styles
    • target.section
      6.4.0
      Target section element, only applies to right transfer section container styles
    • source.header
      6.4.0
      Source header element, only applies to left header area styles
    • target.header
      6.4.0
      Target header element, only applies to right header area styles
    • source.title
      6.4.0
      Source title element, only applies to left title text styles
    • target.title
      6.4.0
      Target title element, only applies to right title text styles
    • source.body
      6.4.0
      Source body element, only applies to left list body styles
    • target.body
      6.4.0
      Target body element, only applies to right list body styles
    • source.list
      6.4.0
      Source list element, only applies to left list content styles
    • target.list
      6.4.0
      Target list element, only applies to right list content styles
    • source.item
      6.4.0
      Source item element, only applies to left list item styles
    • target.item
      6.4.0
      Target item element, only applies to right list item styles
    • source.itemIcon
      6.4.0
      Source item icon element, only applies to left icon styles
    • target.itemIcon
      6.4.0
      Target item icon element, only applies to right icon styles
    • source.itemContent
      6.4.0
      Source item content element, only applies to left text content styles
    • target.itemContent
      6.4.0
      Target item content element, only applies to right text content styles
    • source.footer
      6.4.0
      Source footer element, only applies to left footer area styles
    • target.footer
      6.4.0
      Target footer element, only applies to right footer area styles
    • header
      Header element with flex layout, alignment, height, padding, color, background color, bottom border, border radius and other header area styles
    • title
      Title element with text ellipsis, flex ratio, text alignment, auto left margin and other title text layout and styles
    • body
      Body element with list main area container styles and layout control
    • list
      List element with list content styles, layout and scroll control
    • item
      List item element with relative positioning, padding, border, hover state, selected state, disabled state and other list item interaction styles
    • itemIcon
      List item icon element with checkbox and other icon styles and interaction states
    • itemContent
      List item content element with text ellipsis, padding and other list item text content display styles
    • footer
      Footer element with bottom operation area styles and layout
    • actions
      Actions element with transfer button group styles, layout and interaction states