Javascript scrollTop在react js中不工作
我正在使用React和基本JavaScript。scrollTop似乎根本不起作用。我使用的代码如下:Javascript scrollTop在react js中不工作,javascript,reactjs,scroll,Javascript,Reactjs,Scroll,我正在使用React和基本JavaScript。scrollTop似乎根本不起作用。我使用的代码如下: const node = ReactDOM.findDOMNode(this) const $container = node.getElementsByClassName('comments') $container[0].scrollTop = 10 执行此代码后,scrollTop不工作。已经有了可用的CSS,容器元素的所有滚动都可见。我认为,当您想要获取DomeElement时,应该
const node = ReactDOM.findDOMNode(this)
const $container = node.getElementsByClassName('comments')
$container[0].scrollTop = 10
执行此代码后,
scrollTop
不工作。已经有了可用的CSS,容器元素的所有滚动都可见。我认为,当您想要获取DomeElement时,应该删除findDOMNode并使用ref
。解决此问题的方法之一如下:
const homeStyles = {
overflow: 'auto',
width: 100,
height: 100,
border: '1px solid #333'
}
class Home extends React.Component{
handleScrollTo = () => {
this.container.scrollTop = 10;
}
render(){
return (
<div ref={ el => this.container = el} style={homeStyles}>
<a onClick={this.handleScrollTo}>ScrollTo</a> <br/><br/>
content<br/>
content<br />
content<br />
content<br />
content<br />
content<br />
content<br />
content<br />
content<br />
</div>
)
}
}
const homeStyles={
溢出:“自动”,
宽度:100,
身高:100,
边框:“1px实心#333”
}
类Home扩展了React.Component{
handleScrollTo=()=>{
this.container.scrollTop=10;
}
render(){
返回(
this.container=el}style={homeStyles}>
在您的方法中,执行以下操作
componentDidMount () {
window.scrollTo(0, 0);
}
render () {
return (
<div>
<p>text here</p>
<p>text here</p>
<p>text here</p>
<p>text here</p>
<button onClick={this.onScrollToTop}>Take Me To Top</button>
</div>
);
}
componentDidMount(){
滚动到(0,0);
}
渲染(){
返回(
此处文本
此处文本
此处文本
此处文本
带我到山顶
);
}
为什么要将Javascript DOM处理与React混合使用。是否只在特定的类元素上滚动?是的,我正在尝试在特定的类元素上滚动。是否有任何可用于滚动或动画的React库?我不想使用onClick,我需要使用scrollTop DynamicCallyHi,然后您可以调用此scrollTo函数在componentDidMount liyfecycle中,因此一旦组件加载,它就会滚动到顶部。如果您需要在组件状态或道具更新时滚动到顶部,那么您应该在react中使用componentDidUpdate
lyfecycle。希望它有帮助。