diff --git a/src/Item.tsx b/src/Item.tsx index c8f046b..aadc9d5 100644 --- a/src/Item.tsx +++ b/src/Item.tsx @@ -11,7 +11,7 @@ export interface ItemProps extends React.HTMLAttributes { item?: ItemType; className?: string; style?: React.CSSProperties; - renderItem?: (item: ItemType) => React.ReactNode; + renderItem?: (item: ItemType, index: number) => React.ReactNode; responsive?: boolean; // https://github.com/ant-design/ant-design/issues/35475 /** @@ -66,7 +66,7 @@ function InternalItem( // ================================ Render ================================ const childNode = - renderItem && item !== UNDEFINED ? renderItem(item) : children; + renderItem && item !== UNDEFINED ? renderItem(item, order) : children; let overflowStyle: React.CSSProperties | undefined; if (!invalidate) { diff --git a/src/Overflow.tsx b/src/Overflow.tsx index d4c6b83..76d5a78 100644 --- a/src/Overflow.tsx +++ b/src/Overflow.tsx @@ -41,7 +41,7 @@ export interface OverflowProps extends React.HTMLAttributes { itemKey?: React.Key | ((item: ItemType) => React.Key); /** Used for `responsive`. It will limit render node to avoid perf issue */ itemWidth?: number; - renderItem?: (item: ItemType) => React.ReactNode; + renderItem?: (item: ItemType, index: number) => React.ReactNode; /** @private Do not use in your production. Render raw node that need wrap Item by developer self */ renderRawItem?: (item: ItemType, index: number) => React.ReactElement; maxCount?: number | typeof RESPONSIVE | typeof INVALIDATE; @@ -172,7 +172,7 @@ function Overflow( ); const mergedRenderItem = useCallback( - renderItem || ((item: ItemType) => item), + renderItem || ((item: ItemType, index: number) => item), [renderItem], );