개발자

ref is not a prop 에러

2022년 10월 17일조회 143

Viewer 컴포넌트 내부의 요소를 형제 컴포넌트인 Controls로 조작하고 싶어 사진처럼 상위 컴포넌트에서 ref를 정의해서 두 컴포넌트에 각각 넘겨줬는데 Viewer 컴포넌트에서 "ref is not a prop"이라는 오류메시지가 발생합니다. ref를 넘겨줬는데 왜 ref가 prop이 아니라고 하는지 모르겠습니다. 뭐가 문제인지 아시는 분이나 구현할 다른 방법을 아시는분 계실까요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

이은재님의 프로필 사진

안녕하세요. ref는 HTML 엘리먼트를 사용하기 위해 사용되어서 약간 keyword 처럼 쓰이기 때문에 컴포넌트의 props로는 직접 작성할 수 없는 걸로 알고 있습니다. 컴포넌트에 ref를 전달하고 싶으시면 Control에 하신 것처럼 ref가 아닌 다른 이름으로 props를 넘겨주시거나 React에서 제공하는 forwardRef를 사용해야 합니다. 현재 ref를 전달해주고 있는 Viewer를 export하실 때 "export default forwardRef(Viewer)"와 같이 forwardRef로 감싸서 export 하시면 아마 ref를 정상적으로 전달할 수 있을 것 같습니다.

profile picture

익명

작성자

2022년 10월 18일

앗 그렇군요... 답변 감사합니다 시도해 볼게요!!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!