我的页面上有一个内容区域,显示从 API 中提取的数据。我把它连接起来,所以一旦从 API 中提取数据,它就会保存到 Redux 存储并在页面上显示它。现在,我需要在顶部和底部按钮上添加一个滚动条,这样如果页面长度超过给定数量,比如 600 像素,它们就会出现。奇怪的是,在第一次加载页面时,API 查询没有启动,因此页面是空的,所以按钮不应该出现。
鉴于这一切,我没有办法,只能在 componentDidUpdate()
componentDidUpdate() {
let ContentArea = document.getElementById('contentArea');
if(ContentArea != null & ContentArea.clientHeight > 0){
this.props.pageContentHeight(ContentArea.clientHeight)
}
}
并将高度值保存到 Redux 存储,因此在代码中我可以像这样显示滚动条:
{(contentHeight > 600) && <Scroll to="bottom" /> }
<Router page={pageURL} />
{(contentHeight > 600) && <Scroll to="top" /> }
上面的 contentHeight 来自 redux 商店。
根据我的阅读,不建议在 React 更新生命周期内进行调度,特别是因为调度也会导致更新生命周期启动,它可能会导致无限循环。有什么办法可以让你们想到在页面上添加滚动到顶部或底部按钮?
有这个包允许滚动底部但不是顶部: https ://www.npmjs.com/package/react-scroll-to-bottom