我正在开发基于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实现动态高度的网格标题?
布赖恩,谢谢你的支持和你的工作!至于答案,这与我试图达成的有点不同,虽然有很大帮助。 –