不幸的是,如果没有一点破解,目前不支持这一点。
首先,hack 的原因:滚动偏移量与ScrollSync
(mainGrid
到 synchronized Grid
s) 沿一个方向流动。这意味着即使ScrollSync
接受默认的左/上偏移作为道具,它们也会被 main 的第一次渲染覆盖Grid
。我认为这可能是避免反应虚拟化内部丑陋的正确做法。
但是,如果您愿意,可以在这样的应用程序代码中解决它:
class YourComponent extends Component {
render () {
// These are arbitrary
const defaultScrollLeft = 300
const defaultScrollTop = 500
return (
<ScrollSync>
{({ clientHeight, clientWidth, onScroll, scrollHeight, scrollLeft, scrollTop, scrollWidth }) => {
if (!this._initialized) {
scrollLeft = defaultScrollLeft
scrollTop = defaultScrollTop
this._initialized = true
}
return (
<div>
<Grid
{...otherSyncedGridProps}
scrollLeft={scrollLeft}
/>
<Grid
{...otherMainGridProps}
onScroll={onScroll}
scrollLeft={defaultScrollLeft}
scrollTop={defaultScrollTop}
/>
</div>
)
}}
</ScrollSync>
)
}
}