[React Hook Form] useRef 연결하여 사용하기

이성헌·2021년 8월 16일
3

React

목록 보기
1/4
post-thumbnail

React-use-Form을 사용하다 보면, useRef를 연결하여 사용할 일(스크롤 관련이나, 포커싱 관련 이벤트를 처리할 때)이 종종 있다.

예를 들어, textarea의 인풋 창을 수정할 때 value의 높이에 따라 textarea의 크기를 조절할 때가 있다.

그런 경우, 간단하게 아래의 코드처럼 useRef를 reactFrom 요소와 연결한 뒤, 평소에 사용하던 것처럼 useRef를 사용해주면 간단하게 해결이 된다.

const inputRef = useRef<HTMLTextAreaElement | null>(null);

const { register } = useForm({
  defaultValues: {
    inputValue: ''
  }
});
const { ref, ...rest } = register('inputValue');

useEffect(() => {
  if (inputRef.current !== null) {
    inputRef.current.style.height = `${inputRef.current.scrollHeight}px`;
  }
}, [inputRef]);
return (
  <textarea
  {...rest}
    ref={(e) => {
      ref(e);
      inputRef.current = e;
    }}
  />
)

Reference

React Hook Form FAQS

profile
프론트엔드 개발자

2개의 댓글

comment-user-thumbnail
2022년 6월 23일

번창하세요 선생님,,

답글 달기
comment-user-thumbnail
2024년 4월 18일

번창하세요 선생님,,

답글 달기