我正在開發基於react-virtualized的數據網格組件。它應該有一個帶有可調整大小列的固定標題。我希望標題根據標題單元格內容更改其高度。我正在使用CellMeasurer來計算單元格高度並更新標題的高度。有沒有辦法使用react-virtualized來實現動態高度的網格標題?
問題是單元格大小是在單元格呈現後(afaik)計算的,因此如果高度已更改,則必須在標頭的render
內部調用forceUpdate
。
這裏是如何render
樣子(完整例子here):
render() {
const height = this._cache.rowHeight({ index: 0 });
console.log('render', height, this.props.sizes);
setTimeout(() => {
if (height !== this._cache.rowHeight({ index: 0 })) {
console.log('forceUpdate', this._cache.rowHeight({ index: 0 }))
this.forceUpdate()
}
}, 0)
return (
<Grid
ref={ref => this._grid = ref}
deferredMeasurementCache={this._cache}
width={1500}
height={height}
columnCount={5}
columnWidth={this.columnWidth}
rowCount={1}
rowHeight={this._cache.rowHeight}
cellRenderer={this.renderCell}
/>
);
}
所以,問題是如何避免forceUpdate
?有沒有一種更清晰的方式來使用react-virtualized實現動態高度的網格標題?
布賴恩,謝謝你的支持和你的工作!至於答案,這與我試圖達成的有點不同,雖然有很大幫助。 –