logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
5.26.0
  • Components Overview
  • General
    • Button
    • FloatButton
      5.0.0
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
      5.10.0
    • Grid
    • Layout
    • Space
    • Splitter
      5.21.0
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
    • Tabs
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
      5.5.0
    • 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
    • Popover
    • QRCode
      5.1.0
    • Segmented
    • Statistic
    • Table
    • Tag
    • Timeline
    • Tooltip
    • Tour
      5.0.0
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
      5.1.0
  • Other
    • Affix
    • App
      5.1.0
    • ConfigProvider
    • Util
      5.13.0
When To Use
Examples
Basic
One Way
Search
Advanced
Custom datasource
Pagination
Table Transfer
Tree Transfer
Status
API
Render Props
Warning
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";
Sourcecomponents/transfer
Docs
Edit this pageChangelog
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
    Twitter
    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
    xtech logoAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Ant Design Community

    When To Use

    • It is a select control essentially which can be use 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 in the API description, these names are reflected in.

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

    Examples

    API

    Common props ref:Common props

    PropertyDescriptionTypeDefaultVersion
    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 columnsobject | ({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 bottomstring[][>, <]
    operationStyleA custom CSS style used for rendering the operations columnobject-
    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
    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 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 an unique identifier.

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

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

    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?

    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
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    One Way

    Use oneWay to make Transfer the one way style.

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Search

    Transfer with a search box.

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    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
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Custom datasource

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

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Pagination

    Store a large amount of items with pagination.

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Table Transfer

    Customize the render list with a Table component.

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Tree Transfer

    Customize the render list with a Tree component.

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    Status

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

    CodeSandbox Icon
    codeblock
    codepen icon
    External Link Icon
    expand codeexpand code
    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
    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