🇦🇺English |🇨🇳 简体中文
- Optimization big list
- infinite scroll loading
- Record list scroll state
- Support different height list items
npm install react-roll
import {Provider, Scroller} from 'react-scoll'
const App () => (
<Provider>
<Scroller element={ListItem}/>
</Provider>
)
async function fetch(page, push) {
const list = await getData({page}) // list: [{title}]
push(list)
}
const ListItem = ({title}) => <div>{title}</div>
// As long as there is onFetch prop, that you can infinite load list data
<Provider>
<Scroller element={ListItem} onFetch={fetch} />
</Provider>
// If the list items have different heights, set an average height!
// And If the list items have same heights, set an average height too!
<Provider>
<Scroller averageHeight={200} element={ListItem} onFetch={fetch} />
</Provider>
<Provider source={bigList}>
<Scroller averageHeight={50} element={ListItem}>
</Provider>
<Provider source={bigList}>
<Scroller
{/* other elements */}
upperRender={() => <Header />}
averageHeight={50}
element={ListItem}>
</Provider>
prop(extends DIV) | description | type | default |
---|---|---|---|
element | list item component | React.Element | |
averageHeight | average height of list item | Number | 350 |
length | The actual number to render, If not set, it will be calculated by the algorithm | Number | |
onFetch | the method of fetch data | Function | |
upperRender | insert elements other than lists | Function |
prop | description | type | default |
---|---|---|---|
source | data of list, make scrolling components controlled | Array |