>웹 프론트엔드 >JS 튜토리얼 >React에서 채팅 위젯의 맨 아래로 스크롤하는 방법은 무엇입니까?

React에서 채팅 위젯의 맨 아래로 스크롤하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-16 00:50:021033검색

How to Scroll to the Bottom of a Chat Widget in React?

React에서 요소로 스크롤하는 방법

이 글에서는 새 메시지가 표시될 때 채팅 위젯의 스크롤 막대가 상단에 고정되어 있는 일반적인 문제를 해결하겠습니다. 짐. 우리의 목표는 이전 배열의 마지막 메시지 요소에 스크롤 막대의 초점을 맞추는 것입니다.

해결책

이 문제를 해결하려면 다음을 수행해야 합니다.

  1. 동적 생성 메시지 요소를 렌더링하는 구성 요소에 인덱스를 전달하여 refs.
  2. 원하는 요소로 스크롤하는 적절한 스크롤 기능을 활용하세요.

React 16.8, 기능 구성 요소:

const ScrollDemo = () => {
  const myRef = useRef(null);

  const executeScroll = () => myRef.current.scrollIntoView(); // Scroll to the element

  return (
    <>
      <div ref={myRef}>Element to scroll to</div>
      <button onClick={executeScroll}>Click to scroll </button>
    </>
  );
};

React 16.3 , 클래스 구성 요소:

class ReadyToScroll extends Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }

  render() {
    return <div ref={this.myRef}>Element to scroll to</div>;
  }

  executeScroll = () => this.myRef.current.scrollIntoView(); // Scroll to the element
}

클래스 구성 요소 - 참조 콜백:

class ReadyToScroll extends Component {
  render() {
    return <div ref={(ref) => (this.myRef = ref)}>Element to scroll to</div>;
  }

  executeScroll = () => this.myRef.scrollIntoView(); // Scroll to the element
}

중요 사항:

  • 문자열 참조는 성능과 구성성을 저하시키므로 사용하지 마세요.
  • 더 부드러운 스크롤 애니메이션을 위해 다음 CSS를 추가하세요.
html {
  scroll-behavior: smooth;
}
  • ref를 하위 구성 요소에 전달할 때 기본 "ref" prop과의 충돌을 피하기 위해 prop의 이름을 다르게 지정하세요.

위 내용은 React에서 채팅 위젯의 맨 아래로 스크롤하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.