Back to Ant Design

List

components/list/index.en-US.md

6.6.17.4 KB
Original Source

When To Use

A list can be used to display content related to a single subject. The content can consist of multiple elements of varying type and size.

<!-- prettier-ignore -->

:::warning{title=Deprecated Notice} List component has been deprecated. Will be removed in the next major version. Please use Listy instead. See How do I migrate off List?. :::

Examples

<!-- prettier-ignore -->

<code src="./demo/simple.tsx">Simple list</code> <code src="./demo/basic.tsx">Basic list</code> <code src="./demo/loadmore.tsx">Load more</code> <code src="./demo/vertical.tsx">Vertical</code> <code src="./demo/pagination.tsx">Pagination Settings</code> <code src="./demo/grid.tsx">Grid</code> <code src="./demo/grid-test.tsx" debug>Test Grid</code> <code src="./demo/responsive.tsx">Responsive grid list</code> <code src="./demo/infinite-load.tsx">Scrolling loaded</code> <code src="./demo/drag-sorting.tsx">Drag sorting</code> <code src="./demo/drag-sorting-handler.tsx">Drag sorting with handler</code> <code src="./demo/grid-drag-sorting.tsx">Grid Drag sorting</code> <code src="./demo/grid-drag-sorting-handler.tsx">Grid Drag sorting with handler</code> <code src="./demo/virtual-list.tsx">virtual list</code> <code src="./demo/component-token.tsx" debug>custom component token</code> <code src="./demo/spin-debug.tsx" debug>Spin loading debug</code>

API

Common props ref:Common props

List

PropertyDescriptionTypeDefaultVersionGlobal Config
borderedToggles rendering of the border around the listbooleanfalse×
dataSourceDataSource array for listany[]-×
footerList footer rendererReactNode-×
gridThe grid type of list. You can set grid to something like {gutter: 16, column: 4}object-×
headerList header rendererReactNode-×
itemLayoutThe layout of listhorizontal | verticalhorizontal×
loadingShows a loading indicator while the contents of the list are being fetchedboolean | SpinProps (more)false×
loadMoreShows a load more contentReactNode-×
localeThe i18n text including empty textobject{emptyText: No Data}×
paginationPagination config, hide it by setting it to falseboolean | objectfalse×
renderItemCustomize list item when using dataSource(item: T, index: number) => ReactNode-×
rowKeyItem's unique value, could be an Item's key which holds a unique value of type React.Key or function that receives Item and returns a React.Keykeyof T | (item: T) => React.Key"key"×
sizeSize of listdefault | large | smalldefault×
splitToggles rendering of the split under the list itembooleantrue×

pagination

Properties for pagination.

PropertyDescriptionTypeDefault
positionThe specify the position of Paginationtop | bottom | bothbottom
alignThe specify the alignment of Paginationstart | center | endend

More about pagination, please check Pagination.

List grid props

PropertyDescriptionTypeDefaultVersion
columnThe column of gridnumber-
gutterThe spacing between gridnumber0
xs<576px column of gridnumber-
sm≥576px column of gridnumber-
md≥768px column of gridnumber-
lg≥992px column of gridnumber-
xl≥1200px column of gridnumber-
xxl≥1600px column of gridnumber-
xxxl≥1920px column of gridnumber-6.3.0

List.Item

PropertyDescriptionTypeDefaultVersionGlobal Config
actionsThe actions content of list item. If itemLayout is vertical, shows the content on bottom, otherwise shows content on the far rightArray<ReactNode>-×
classNamesSemantic structure classNameRecord<actions | extra, string>-5.18.05.18.0
extraThe extra content of list item. If itemLayout is vertical, shows the content on right, otherwise shows content on the far rightReactNode-×
stylesSemantic DOM styleRecord<actions | extra, CSSProperties>-5.18.05.18.0

List.Item.Meta

PropertyDescriptionTypeDefaultVersion
avatarThe avatar of list itemReactNode-
descriptionThe description of list itemReactNode-
titleThe title of list itemReactNode-

Semantic DOM

<code src="./demo/_semantic.tsx" simplify="true"></code>

Design Token

<ComponentTokenTable component="List"></ComponentTokenTable>

FAQ {#faq}

Is there a replacement for the deprecated List component? {#faq-listy-replacement}

Yes — please use Listy, available since [email protected]. It is the successor to List, with built-in capabilities such as virtual scrolling, sticky group headers and programmatic scrolling. It also supports flexible custom rendering, aiming to cover list needs across different scenarios.

How do I migrate off List? {#faq-migrate-from-list}

Lists take different shapes in different scenarios, so it is hard to give a one-to-one migration guide. Thanks to the custom rendering capability of Listy, the preset structures in List can now be recomposed with plain JSX inside itemRender.

The mapping is as follows:

  • Data and rendering: dataSource maps to items, renderItem maps to itemRender; rowKey keeps its meaning but is required in Listy and no longer defaults to the key field — pass rowKey="key" explicitly if you relied on the default. For large datasets, no third-party dependency is needed — turn on virtual with a height to get virtual scrolling.
  • Preset structures inside a row: List.Item, List.Item.Meta, actions, extra can all be recomposed inside itemRender.
  • Structures outside the list: put header and footer around Listy directly, wrap the list with Spin for loading, slice the data yourself and pass it to items together with Pagination for pagination, and see the infinite loading demo for loadMore.
  • Styles: adjust bordered, split and size through semantic DOM classNames / styles and Design Token; for grid, migrating to Listy is not recommended — use Row / Col with Card to build the card layout instead.