【发布时间】:2017-09-27 19:06:32
【问题描述】:
我在滚动列表时遇到了一些问题。 还要注意底部的巨大空间。 看视频:https://vimeo.com/215349521
据我所知,我没有犯任何重大错误。 但我相信问题出在 CellMeasurer 上。
Chrome 版本:58.0.3029.81
class PromotionList extends Component {
constructor(props) {
super(props);
this.cache = new CellMeasurerCache({
defaultHeight: 100,
fixedWidth: true,
});
this.rowRenderer = this.rowRenderer.bind(this);
}
componentWillMount() {
this.props.fetchPromotionsIfNeeded();
}
rowRenderer({ index, parent }) {
const { promotions } = this.props;
const data = promotions.list[index];
return (
<CellMeasurer
cache={this.cache}
columnIndex={0}
key={uuid.v1()}
parent={parent}
rowIndex={index}
>
<BlobItem
key={uuid.v1()}
type={BlobTypes.promotion}
data={data}
onClick={this.props.onItemClick}
index={index}
/>
</CellMeasurer>
);
}
render() {
const { promotions, previewSize } = this.props;
return (
<List
height={300}
width={previewSize.width}
rowCount={promotions.list.length}
deferredMeasurementCache={this.cache}
rowHeight={this.cache.rowHeight}
rowRenderer={this.rowRenderer}
className="blobList"
/>
);
}
}
【问题讨论】:
-
嗯。这种闪烁乍一看有点像浏览器错误。也许类似于此评论中显示的那个? github.com/bvaughn/react-virtualized/issues/…
-
@brianvaughn 它看起来不一样安静,即使我停止滚动,我的也会四处弹跳。但它不是舒尔的 CellMeasurer,删除它仍然是一样的。但我同意,这可能是浏览器错误,或者您提供的链接中建议的列表组件