Вы были правы, что я неправильно передал реквизит. Теперь у меня настроено так:
Контейнер.jsx
<div className='container' ref={(ref) => {this.foo = ref;}}>
this.renderContainer()
</div>
<Section scrollContainer={this.foo}/>
Section.jsx (просто передача реквизита)
<Panel scrollContainer={this.props.scrollContainer}/>
Section.propTypes = { scrollContainer: PropTypes.object.isRequired }
Panel.jsx (передача реквизита)
<RenderedTable scrollContainer={this.props.scrollContainer} />
RenderedTable.jsx
return (
<div className='padding-top-20 font-smoothing'>
<WindowScroller scrollElement={this.props.scrollContainer}>
{({ height, isScrolling, scrollTop, onChildScroll }) => (
<AutoSizer disableHeight>
{({ width }) => (
<Table
К сожалению, windowScroller по-прежнему не изменяет размер. Я также не получаю никаких предупреждений или ошибок. Используете ли вы трюки css, чтобы изменить размер скроллера? Я вижу, что в примере https://bvaughn.github.io/react-virtualized/#/components/WindowScroller вы изменяете свойства flex и overflow при изменении scrollElement с window на scrollingBody.
Я знаю, что вы очень заняты, и очень ценю вашу помощь!