Javascript scrollTop在react js中不工作

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时,应该

我正在使用React和基本JavaScript。scrollTop似乎根本不起作用。我使用的代码如下:

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。希望它有帮助。