react-grid-layoutとreact-custom-scrollbarsを使用してパネルのグリッドを作成しています。React-Grid-Layout:サイズ変更時にアイテムを再レンダリングする方法
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>
)
}
}
ワークスリサイズ以外期待通り::それは私がforceRenderAfterResize
ダミー状態変数ということを設定しています理由である再レンダリングする場合Scrollbars
だけそのバーを更新するここでは、コードの簡体版です。
これを達成するにはどうすればよいでしょうか?上記のソリューションはちょっと不思議で、サイズ変更されたアイテムだけでなくすべてのアイテムを再レンダリングします。
おかげCH、それはダミー変数を導入するよりも、確かに明確ではありません。私はまだ反応格子レイアウトの[GridItem](https://github.com/STRML/react-grid-layout/blob/master/lib/GridItem.jsx)が何らかの形で、カスタムスクロールバーの[スクロールバー](https://github.com/malte-wessel/react-custom-scrollbars/blob/master/src/Scrollbars/index.js)コンポーネント。サイズ変更は、グリッドのパネルの1つの内容にのみ影響しますので、すべてをレンダリングする必要はありません。つまり、これは私のところでは時期尚早の最適化である可能性があります。 – peterwimsey