Skip to main content

Interface: VirtuosoProps<D, C>

Type parameters

Name
D
C

Hierarchy

Properties

alignToBottom

Optional alignToBottom: boolean

Setting alignToBottom to true aligns the items to the bottom of the list if the list is shorter than the viewport. Use followOutput property to keep the list aligned when new items are appended.

Defined in

dist/index.d.ts:1019


atBottomStateChange

Optional atBottomStateChange: (atBottom: boolean) => void

Type declaration

▸ (atBottom): void

Called with true / false when the list has reached the bottom / gets scrolled up. Can be used to load newer items, like tail -f.

Parameters
NameType
atBottomboolean
Returns

void

Defined in

dist/index.d.ts:1002


atBottomThreshold

Optional atBottomThreshold: number

The property accepts pixel values.

By default 4. Redefine to change how much away from the bottom the scroller can be before the list is not considered not at bottom.

Defined in

dist/index.d.ts:1043


atTopStateChange

Optional atTopStateChange: (atTop: boolean) => void

Type declaration

▸ (atTop): void

Called with true / false when the list has reached the top / gets scrolled down.

Parameters
NameType
atTopboolean
Returns

void

Defined in

dist/index.d.ts:1006


atTopThreshold

Optional atTopThreshold: number

The property accepts pixel values.

By default 0. Redefine to change how much away from the top the scroller can be before the list is not considered not at top.

Defined in

dist/index.d.ts:1037


components

Optional components: Components<D, C>

Use the components property for advanced customization of the elements rendered by the list.

Defined in

dist/index.d.ts:915


computeItemKey

Optional computeItemKey: ComputeItemKey<D, C>

If specified, the component will use the function to generate the key property for each list item.

Defined in

dist/index.d.ts:923


context

Optional context: C

Additional context available in the custom components and content callbacks

Defined in

dist/index.d.ts:863


customScrollParent

Optional customScrollParent: HTMLElement

Pass a reference to a scrollable parent element, so that the list won't wrap in its own.

Defined in

dist/index.d.ts:1027


data

Optional data: readonly D[]

The data items to be rendered. If data is set, the total count will be inferred from the length of the array.

Defined in

dist/index.d.ts:859


defaultItemHeight

Optional defaultItemHeight: number

By default, the component assumes the default item height from the first rendered item (rendering it as a "probe").

If the first item turns out to be an outlier (very short or tall), the rest of the rendering will be slower, as multiple passes of rendering should happen for the list to fill the viewport.

Setting defaultItemHeight causes the component to skip the "probe" rendering and use the property value as default height instead.

Defined in

dist/index.d.ts:933


endReached

Optional endReached: (index: number) => void

Type declaration

▸ (index): void

Gets called when the user scrolls to the end of the list. Receives the last item index as an argument. Can be used to implement endless scrolling.

Parameters
NameType
indexnumber
Returns

void

Defined in

dist/index.d.ts:989


firstItemIndex

Optional firstItemIndex: number

Use when implementing inverse infinite scrolling - decrease the value this property in combination with data or totalCount to prepend items to the top of the list.

Warning: the firstItemIndex should be a positive number, based on the total amount of items to be displayed.

Defined in

dist/index.d.ts:980


fixedItemHeight

Optional fixedItemHeight: number

Can be used to improve performance if the rendered items are of known size. Setting it causes the component to skip item measurements.

Defined in

dist/index.d.ts:944


followOutput

Optional followOutput: FollowOutput

If set to true, the list automatically scrolls to bottom if the total count is changed. Set to "smooth" for an animated scrolling.

By default, followOutput scrolls down only if the list is already at the bottom. To implement an arbitrary logic behind that, pass a function:

<Virtuoso
 followOutput={(isAtBottom: boolean) => {
   if (expression) {
     return 'smooth' // can be 'auto' or false to avoid scrolling
   } else {
     return false
   }
 }} />
Read-only

Defined in

dist/index.d.ts:969


headerFooterTag

Optional headerFooterTag: string

Set to customize the wrapper tag for the header and footer components (default is div).

Defined in

dist/index.d.ts:973


increaseViewportBy

Optional increaseViewportBy: number | { bottom: number ; top: number }

The property accepts pixel values.

Set the increaseViewportBy property to artificially increase the viewport size, causing items to be rendered before outside of the viewport. The property causes the component to render more items than the necessary, but can help with slow loading content. Using { top?: number, bottom?: number } lets you set the increase for each end separately.

Defined in

dist/index.d.ts:886


initialItemCount

Optional initialItemCount: number

Use for server-side rendering - if set, the list will render the specified amount of items regardless of the container / item size.

Defined in

dist/index.d.ts:911


initialScrollTop

Optional initialScrollTop: number

Set this value to offset the initial location of the list. Warning: using this property will still run a render cycle at the scrollTop: 0 list window. If possible, avoid using it and stick to initialTopMostItemIndex instead.

Defined in

dist/index.d.ts:906


initialTopMostItemIndex

Optional initialTopMostItemIndex: number | IndexLocationWithAlign

Set to a value between 0 and totalCount - 1 to make the list start scrolled to that item. Pass in an object to achieve additional effects similar to scrollToIndex.

Defined in

dist/index.d.ts:900


isScrolling

Optional isScrolling: (isScrolling: boolean) => void

Type declaration

▸ (isScrolling): void

Called when the list starts/stops scrolling.

Parameters
NameType
isScrollingboolean
Returns

void

Defined in

dist/index.d.ts:984


itemContent

Optional itemContent: ItemContent<D, C>

Set the callback to specify the contents of the item.

Defined in

dist/index.d.ts:919


itemSize

Optional itemSize: SizeFunction

Allows customizing the height/width calculation of Item elements.

The default implementation reads el.getBoundingClientRect().height and el.getBoundingClientRect().width.

Defined in

dist/index.d.ts:939


itemsRendered

Optional itemsRendered: (items: ListItem<D>[]) => void

Type declaration

▸ (items): void

Called with the new set of items each time the list items are rendered due to scrolling.

Parameters
NameType
itemsListItem<D>[]
Returns

void

Defined in

dist/index.d.ts:1014


logLevel

Optional logLevel: LogLevel

set to LogLevel.DEBUG to enable various diagnostics in the console, the most useful being the item measurement reports.

Ensure that you have "all levels" enabled in the browser console too see the messages.

Defined in

dist/index.d.ts:1049


overscan

Optional overscan: number | { main: number ; reverse: number }

The property accepts pixel values.

Set the overscan property to make the component "chunk" the rendering of new items on scroll. The property causes the component to render more items than the necessary, but reduces the re-renders on scroll. Setting { main: number, reverse: number } lets you extend the list in both the main and the reverse scrollable directions. See the increaseViewportBy property for a similar behavior (equivalent to the overscan in react-window).

Defined in

dist/index.d.ts:873


rangeChanged

Optional rangeChanged: (range: ListRange) => void

Type declaration

▸ (range): void

Called with the new set of items each time the list items are rendered due to scrolling.

Parameters
NameType
rangeListRange
Returns

void

Defined in

dist/index.d.ts:997


restoreStateFrom

Optional restoreStateFrom: StateSnapshot

pass a state obtained from the getState() method to restore the list state - this includes the previously measured item sizes and the scroll location. Notice that you should still pass the same data and totalCount properties as before, so that the list can match the data with the stored measurements. This is useful when you want to keep the list state when the component is unmounted and remounted, for example when navigating to a different page.

Defined in

dist/index.d.ts:1055


scrollSeekConfiguration

Optional scrollSeekConfiguration: false | ScrollSeekConfiguration

Use to display placeholders if the user scrolls fast through the list.

Set components.ScrollSeekPlaceholder to change the placeholder content.

Defined in

dist/index.d.ts:950


scrollerRef

Optional scrollerRef: (ref: null | HTMLElement | Window) => any

Type declaration

▸ (ref): any

Provides access to the root DOM element

Parameters
NameType
refnull | HTMLElement | Window
Returns

any

Defined in

dist/index.d.ts:1031


startReached

Optional startReached: (index: number) => void

Type declaration

▸ (index): void

Called when the user scrolls to the start of the list.

Parameters
NameType
indexnumber
Returns

void

Defined in

dist/index.d.ts:993


topItemCount

Optional topItemCount: number

Set the amount of items to remain fixed at the top of the list.

For a header that scrolls away when scrolling, check the components.Header property.

Defined in

dist/index.d.ts:895


totalCount

Optional totalCount: number

The total amount of items to be rendered.

Defined in

dist/index.d.ts:855


totalListHeightChanged

Optional totalListHeightChanged: (height: number) => void

Type declaration

▸ (height): void

Called when the total list height is changed due to new items or viewport resize.

Parameters
NameType
heightnumber
Returns

void

Defined in

dist/index.d.ts:1010


useWindowScroll

Optional useWindowScroll: boolean

Uses the document scroller rather than wrapping the list in its own.

Defined in

dist/index.d.ts:1023