【发布时间】:2020-09-24 15:07:36
【问题描述】:
我有一个使用 react-virtualized AutoSizer 的组件,在这个组件内部有一个 react-virtualized List。它的呈现方式是:
<AutoSizer>
{({width, height}) => (
<List ref={(ref) => (this.refVirtualizedList = ref)}
width={width}
height={height}
playlistLoading={playlistLoading}
playlistPlayingTrackId={playlistPlayingTrackId}
rowCount={rowCount}
deferredMeasurementCache={this.cellMeasurerCache}
overscanRowCount={12}
scrollToIndex={trackGroupToGo - 1}
scrollToAlignment="center"
rowHeight={this.cellMeasurerCache.rowHeight}
updateTrackListFlag={updateTrackListFlag}
noRowsRenderer={this.renderNoRowsResult}
rowRenderer={this.renderTrackGroupRow}
onRowsRendered={this.handleOnRowsRendered} />
)}
</AutoSizer>
它运行良好,但在测试中不起作用。我在列表中看不到任何内容,并且永远不会调用函数 rowRenderer。我正在使用 Jest 和 React 测试库。当使用logDOM 方法检查组件内部的内容时,我看到的是:
<div
aria-label="grid"
aria-readonly="true"
class="ReactVirtualized__Grid ReactVirtualized__List"
role="grid"
style="box-sizing: border-box; direction: ltr; height: 0px; position: relative; width: 0px; will-change: transform; overflow-x: hidden; overflow-y: auto;"
tabindex="0"
/>
List 组件永远不会被渲染。有什么想法吗?
【问题讨论】:
标签: reactjs jestjs react-testing-library react-virtualized