Вы можете обернуть сетку в панели пользовательских прокруток и передать событие onScroll. Этот код работает для меня.
import React from 'react';
import { Grid } from 'react-virtualized';
import { Scrollbars } from 'react-custom-scrollbars';
class ScrollableGrid extends React.Component {
handleScroll = ({ target }) => {
const { scrollTop, scrollLeft } = target;
this.Grid.handleScrollEvent({ scrollTop, scrollLeft });
};
Grid = null;
render() {
const { width, height } = this.props;
return (
<Scrollbars autoHide style={{ width, height }} onScroll={this.handleScroll}>
<Grid
{...this.props}
ref={instance => (this.Grid = instance)}
style={{
overflowX: false,
overflowY: false
}}
/>
</Scrollbars>
);
}
}
const list = [
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125],
['Brian Vaughn', 'Software Engineer', 'San Jose', 'CA', 95125]
];
ReactDOM.render(
<ScrollableGrid
cellRenderer={({ columnIndex, key, rowIndex, style }) => {
return (
<div key={key} style={style}>
{list[rowIndex][columnIndex]}
</div>
);
}}
columnCount={list[0].length}
columnWidth={100}
height={300}
rowCount={list.length}
rowHeight={30}
width={300}
/>,
document.getElementById('example')
);
Вы можете видеть пример со списком и еще некоторый контекст in github issue
Любые ссылки о том, как достичь пользовательских прокрутки с реагировать-виртуализированных, пожалуйста? –
Я пытаюсь сделать то же самое с компонентом List. У вас есть информация о том, как вы заставили их работать вместе? –