ant-design/components/transfer/index.en-US.md

50 lines
3.5 KiB
Markdown
Raw Normal View History

2016-08-03 10:10:13 +08:00
---
category: Components
type: Data Entry
2016-08-03 10:10:13 +08:00
cols: 1
title: Transfer
---
2016-11-09 20:37:10 +08:00
Double column transfer choice box.
2016-08-03 10:10:13 +08:00
2016-08-04 09:45:50 +08:00
## When To Use
2016-11-09 20:37:10 +08:00
Transfer the elements between two columns in an intuitive and efficient way.
2018-08-02 21:00:53 +08:00
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.
2016-08-03 10:10:13 +08:00
## API
2017-10-25 10:25:44 +08:00
| Property | Description | Type | Default |
| -------- | ----------- | ---- | ------- |
| className | A custom CSS class. | string | ['', ''] |
2017-10-25 10:25:44 +08:00
| dataSource | Used 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` prop. | [TransferItem](https://git.io/vMM64)\[] | \[] |
| filterOption | A function to determine whether an item should show in search result list | (inputValue, option): boolean | |
| footer | A function used for rendering the footer. | (props): ReactNode | |
2017-09-09 00:00:24 +08:00
| lazy | property of [react-lazy-load](https://github.com/loktar00/react-lazy-load) for lazy rendering items. Turn off it by set to `false`. | object\|boolean | `{ height: 32, offset: 32 }` |
2017-10-25 10:25:44 +08:00
| listStyle | A custom CSS style used for rendering the transfer columns. | object | |
| locale | i18n text including filter, empty text, item unit, etc | object | `{ itemUnit: 'item', itemsUnit: 'items', notFoundContent: 'The list is empty', searchPlaceholder: 'Search here' }` |
2017-10-25 10:25:44 +08:00
| operations | A set of operations that are sorted from bottom to top. | string\[] | ['>', '<'] |
2018-06-24 17:09:18 +08:00
| operationStyle | A custom CSS style used for rendering the operations column. | object | |
| render | The 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 | Function(record) | |
2017-10-25 10:25:44 +08:00
| selectedKeys | A set of keys of selected items. | string\[] | \[] |
| showSearch | If included, a search box is shown on each column. | boolean | false |
2018-06-24 17:09:18 +08:00
| style | A custom CSS style used for rendering wrapper element. | object | |
2017-10-25 10:25:44 +08:00
| targetKeys | A set of keys of elements that are listed on the right column. | string\[] | \[] |
| titles | A set of titles that are sorted from left to right. | string\[] | - |
| onChange | A callback function that is executed when the transfer between columns is complete. | (targetKeys, direction, moveKeys): void | |
| onScroll | A callback function which is executed when scroll options list | (direction, event): void | |
2017-03-28 10:41:14 +08:00
| onSearchChange | A callback function which is executed when search field are changed | (direction: 'left'\|'right', event: Event): void | - |
2017-10-25 10:25:44 +08:00
| onSelectChange | A callback function which is executed when selected items are changed. | (sourceSelectedKeys, targetSelectedKeys): void | |
2016-08-03 10:10:13 +08:00
## Warning
2017-02-19 17:02:58 +08:00
According the [standard](http://facebook.github.io/react/docs/lists-and-keys.html#keys) 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.
2016-08-03 10:10:13 +08:00
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.
2017-10-25 10:25:44 +08:00
2016-08-03 10:10:13 +08:00
```jsx
// eg. your primary key is `uid`
return <Transfer rowKey={record => record.uid} />;
```