Skip to content

ObjectRef와 MutableRefObject

minjeong9919 edited this page Jun 14, 2024 · 1 revision

문제 상황

useIntersectionObserver를 챗지피티를 통해 처음으로 hook 함수로 빼서 구현해보았다.
전체적인 동작은 option을 입력으로 받고 ref, isIntersecting 값을 반환값으로 넣어 ref를 훅 함수 내부에서 관리하는 식이다!

훅 함수 구현을 완료하고 scrollupButton에 적용하려는데

image

elementRef의 current 속성은 읽기 전용이라 값에 접근할 수 없다고 한다.

문제 원인

이 훅 함수를 어쩌다보니 리팩토링을 몇 번 했는데 같은 방식으로 처음에는 잘 동작하다가 지금은 접근을 못한다고 하니,,
알고봤더니 훅 함수의 리턴 값 타입 지정의 문제였다.

image

처음에는 MutableRefObject 라고 지정했는데 리팩토링 후에 RefObject로 변경되면서 current 속성 값을 변경하지 못한 것이다.

이 부분은 RefObject => MutableRefObject로 변경하면서 문제가 바로 해결되었다.

그렇다면 이 둘의 차이점을 무엇일까? 궁금하였다.

RefObject와 MutableRefObject

다음에 작성,, 해보겠슴니디ㅏ,,

Clone this wiki locally