logoNamu Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
1.0.0
  • Components Overview
  • General
    • Button
    • FloatButtonNew
    • Icon
    • Typography
  • Layout
    • Divider
    • Grid
    • Layout
    • Space
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPickerNew
    • 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
    • QRCodeNew
    • Segmented
    • Statistic
    • Table
    • Tabs
    • Tag
    • Timeline
    • Tooltip
    • TourNew
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
  • Other
    • Affix
    • AppNew
    • ConfigProvider
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

  • TimePickerTreeSelect

    Resources

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

    Community

    Awesome Namu Design
    Medium
    Twitter
    yuqueNamu Design in YuQue
    Namu Design in Zhihu
    Experience Cloud Blog
    seeconfSEE Conf-Experience Tech Conference

    Help

    GitHub
    Change Log
    FAQ
    Bug Report
    Issues
    Discussions
    StackOverflow
    SegmentFault

    Ant XTechMore Products

    yuqueYuQue-Document Collaboration Platform
    AntVAntV-Data Visualization
    EggEgg-Enterprise Node.js Framework
    kitchenKitchen-Sketch Toolkit
    xtechAnt Financial Experience Tech
    Theme Editor
    Made with ❤ by
    Ant Group and Namu Design Community

    Double column transfer choice box.

    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

    Basic

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

    expand codeexpand code
    One Way

    Use oneWay to makes Transfer to one way style.

    expand codeexpand code
    Search

    Transfer with a search box.

    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.

    expand codeexpand code
    Custom datasource

    Custom each Transfer Item, and in this way you can render a complex datasource.

    expand codeexpand code
    Pagination

    large count of items with pagination.

    expand codeexpand code
    Table Transfer

    Customize render list with Table component.

    expand codeexpand code
    Tree Transfer

    Customize render list with Tree component.

    expand codeexpand code
    Status

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

    expand codeexpand code

    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(inputValue, option): 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[][]
    showSearchIf included, a search box is shown on each columnbooleanfalse
    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[][]
    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[]
    onItemSelectSelect item(key: string, selected: boolean)
    onItemSelectAllSelect a group of items(keys: string[], selected: boolean)

    example

    <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.

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

    Design Token

    Component Token

    Global Token

    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

    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
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data

    14 items
    NameTagDescription
    content1catdescription of content1
    content2dogdescription of content2
    content4catdescription of content4
    content5dogdescription of content5
    content7catdescription of content7
    content8dogdescription of content8
    content10catdescription of content10
    content11dogdescription of content11
    content13catdescription of content13
    content14dogdescription of content14
    • 1
    • 2
    6 items
    Name
    content3
    content6
    content9
    content12
    content15
    content18
    • 1
    7 items
    0-0
    0-1
    0-1-0
    0-1-1
    0-2
    0-3
    0-4
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data
    0 item
    No data