我正在尝试添加AutoSizer,但始终获得0px的高度和宽度。
我这样添加AutoSizer:
console.log("width: " + width, "height: " + height);
return (
<div style={{height: '300px'}}>
<AutoSizer>
{({ width, height }) => (
<VirtualScroll
ref="VirtualScroll"
width={width}
height={height}
rowCount={months.length}
rowHeight={this.getMonthHeight}
estimatedRowSize={rowHeight * 5}
rowRenderer={this.renderMonth}
onScroll={onScroll}
scrollTop={this._initScrollTop}
className={classNames(style.root, {[style.scrolling]: isScrolling})}
style={{lineHeight: `${rowHeight}px`}}
overscanRowCount={overscanMonthCount}
/>
)}
</AutoSizer>
</div>
);
产生的html:
<div class="Cal__Container__listWrapper">
<div style="height: 300px; position: relative;">
<div style="overflow: visible; height: 0px; width: 0px;">
<div aria-label="grid" class="Grid VirtualScroll Cal__List__root" role="grid" tabindex="0" style="line-height: 40px; height: 300px; width: 400px; overflow-x: hidden; overflow-y: auto;">
...
</div>
</div>
</div>
日志给我:
宽度:400高度:200
如果我在浏览器中编辑0px框的html并滚动我的框(通过状态更改,那应该会增加其高度),则不会发生任何事情。即使将新的高度值记录到控制台,它也保持其手动修改的大小。
该console.log
语句不在您的子函数之内,因此我不确定它在记录什么(但不是传递的值AutoSizer
)。
还需要指出的是,您的内部Grid
片段实际上是上述片段中正确的尺寸:
<div style="height: 300px; width: 400px;">
<div>
网格周围的包装器有意使用awidth
和height
0进行大小调整,以使其AutoSizer
扩展以填充其父级而不拉伸它。它的样式也设置overflow: visible
为考虑到这一点。
因此,基本上,一切都如您所显示的那样按预期进行。要获得更多帮助,我可能需要您提供柱塞。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句