首页 > 解决方案 > 在 React 中滚动到 DOM 元素

问题描述

我正在使用 react 16.4,我需要滚动到应用程序中的 DOM 元素。因为refs现在在反应中已弃用,所以我正在寻找实现这一目标的最干净的方法。

但从我的角度来看,如果没有ref也没有像这样直接操作 DOM,很难找到解决方案:

document.getElementById("questions").lastElementChild.scrollIntoView({
  behavior: "smooth"
});

目前做这种事情的最好方法是什么?

最好的祝福

标签: javascriptreactjs

解决方案


您仍然可以使用React.createRef(). 只有字符串引用和回调被弃用/正在被弃用。

import React, {Component, createRef} from 'react'
class App extends Component {    
  myRef = createRef()   // Create a ref object     
  scrollToRef = () => 
    window.scrollTo(0, this.myRef.current.offsetTop); 

  render() {
    return <div ref={this.myRef}></div> 
  }
}

推荐阅读