我正在使用react-grid-layout和react-custom-scrollbars创建面板网格。这是代码的简化版本:
class GridLayoutWithScrollableItems extends React.Component {
onResize() {
this.setState({forceRenderAfterResize: Date.now()})
}
render() {
return (
<ReactGridLayout width={900} onResize={this.onResize.bind(this)}>
<div key="a">
<Scrollbars>
<p>Lorem ipsum dolor ....</p>
</Scrollbars>
</div>
<div key="b">
<Scrollbars>
<p>Aenean purus magna ...</p>
</Scrollbars>
</div>
</ReactGridLayout>
)
}
}
除调整大小外按预期工作:Scrollbars
仅在重新渲染时更新其条形图,这就是我设置该虚拟状态变量的原因forceRenderAfterResize
。
实现这一目标的最佳方法是什么?上面的解决方案感觉有点笨拙,并且还会重新渲染所有项目,而不仅仅是调整大小的项目。