在使用React Virtualized

时间:2018-12-26 06:30:05

标签: css reactjs list react-virtualized

我正在使用React-Virtualized创建一个延迟加载的无限列表。

https://github.com/bvaughn/react-virtualized/blob/master/docs/InfiniteLoader.md

但是,我无法在渲染的div之间创建间隙,因为它们是绝对定位的并且top是动态计算的。

我尝试了以下方法,但是没有运气。 关于如何增加每个元素之间的差距的任何想法?谢谢!

<AutoSizer disableHeight>
   {({width}) => (
              <List
                onRowsRendered={onRowsRendered}
                ref={registerChild}
                rowCount={rowCount}
                rowRenderer={rowRenderer}
                width={width - 30}
                rowHeight={175}
                height={this.state.height - 64}
                style={{
                  paddingTop: 15,
                  boxSizing: 'content-box',
                }}
                containerStyle={{
                  position: 'relative',
                  overflow: 'visible',
                }}
              />
    )}
</AutoSizer>

1 个答案:

答案 0 :(得分:0)

我最终通过在CellMeasurer内添加一个div作为父容器来提供填充来解决填充问题。

div是绝对定位的容器,而填充Card并显示框阴影。

<CellMeasurer
      cache={this.cache}
      columnIndex={0}
      key={key}
      rowIndex={index}
      parent={parent}
    >
      {({ measure }) => (
        <div
          className={s.listItem}
          style={style}
          onLoad={measure}
          key={index}>
            <Card>