https://codesandbox.io/s/l79vn4rowq
删除项目时,我没有重新初始化cellMeasurerCache,因为我已经掌握了每个项目的尺寸。这样,就不会设置填充位置缓存的上限和下限,因为如果缓存中已经存在尺寸,则CellMeasurer不会调用invalidateCellSizeAfterRender
。
//hack to set a range for populating position cache
masonryInstance.invalidateCellSizeAfterRender({ rowIndex: 0 });
masonryInstance.invalidateCellSizeAfterRender({
rowIndex: batchSize - 1
});
//populate position cache
masonryInstance.recomputeCellPositions();
我必须使用hack方法invalidateCellSizeAfterRender
来设置填充位置缓存的上限和下限。有更好的方法吗?