const MessagesContainer = styled.div`
overflow: scroll;
overflow-x: hidden;
`;
둘 중 하나만 써도 된다.
function Room() {
const scrollRef = useRef();
return (
<MessagesContainer ref={scrollRef} />
)
}
useEffect(() => {
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
});
useEffect를 사용하는 이유
1. 해당 div가 렌더링 완료되어야 그 ref 값을 에러없이(undefinded) 사용할 수 있다. 따라서 useEffect로 마운트 됐을 때 값을 사용하도록 한다.
- 채팅창의 스크롤을 올린채로 닫고 다시 채팅창을 열어도 스크롤이 맨 아래에 위치하도록 하기 위함.