【发布时间】:2021-01-21 06:13:18
【问题描述】:
- 我的网址
https://abc1234.com/users#api-doc
- HTML
<div className={parent}>
<div className={child}>
{someContent}
<a id="api-doc">Hello API</a>
</div>
</div>
我正在用 ReactJS 编写页面。我需要实现一种方法,以便页面自动向下滚动到哈希,即 api-doc 但不知何故它不会在页面加载时自动滚动(第一次)。
我尝试了这样的解决方法
componentDidUpdate(){
let id = this.props.history.location.hash.replace("#", "");
let element = document.getElementById(id);
setTimeout(() => {
if (element) {
element.scrollIntoViewIfNeeded(true);
}
}, 200);
}
它正在工作,但我正在寻找一种更好的方法来实现同样的效果
换句话说,我不想使用 setTimeOut。
我添加了 setTimeOut,因为我发现 document.getElementById(id) 给出了 null(第一次),我假设 componentDidUpdate 在整个渲染之前以某种方式运行。我还使用了 dangerouslySetInnerHTML 。
【问题讨论】:
标签: javascript reactjs url autoscroll