Skip to content

nishanbajracharya/react-virtualized-listview

Repository files navigation

react-virtualized-listview

A simple virtualized listview inspired by react-virtualized

Getting started

The first step is to add react-virtualized-listview into your project.

$ npm install --save react-virtualized-listview

Note: This library is not dependent on react-virtualized which is a separate and highly customizable virtualized list library.

Usage

Import the package into your project using the import statement

import List from 'react-virtualized-listview';

Example

const data = [{
  number: 1,
  height: 40
}, {
  number: 2,
  height: 40
},{
  number: 3,
  height: 40
}, {
  number: 4,
  height: 40
}, {
  number: 5,
  height: 40
}];

<List
  source={data}
  renderItem={({ index, style }) => (
    <div key={index} style={style}>
      Hello {index}
    </div>
  )}
/>

API

Prop Default Required? Description
source [ ] Yes An array of the input source. The array is iterated over and index of each item is returned in the renderItem prop. source.item shold be have height property.
rowHeight 24 No The height of each row in the list.
overScanCount 5 No The number of rows to render above and below the visible list window. This is to have some rows already rendered while scrolling above or below the visible list window so that they don't pop in as soon as the list is scrolled.
renderItem Yes The function that is called when rendering each row.

renderItem

The renderItem function signature is as follows

({
  index, // The index of each item in the source prop
  style // The style that is applied to the row item
}) => <RowItem key={index} index={index} style={style}/>

Note: Passing the style prop and applying in the root element of the row item is required

Features planned for next release

  • Expose internal components using default CSS classnames, custom classname injection and refs
  • Add scroll persistence so that the scroll position persists between route changes

Contributing

To contribute, follow one of the two options:

  • Open an Issue

    Open an issue detailing:

    1. What the issue is
    2. Steps to reproduce
    3. Possible solutions

    Note: These details are recommended but are entirely optional.

  • Send a Pull Request

    Fork this project and send a pull request to the master branch.

License

MIT