강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Boom님의 프로필 이미지
Boom

작성한 질문수

실전 리액트 프로그래밍

리액트 내장 훅 살펴보기

useImperativeHandle 질문 입니다.

작성

·

271

0

1. useImperativeHandle 을 사용하기 위해서 forwardRef로 감쌀필요가 꼭 있는 것일까요? childRef 처럼 그냥 넘겨줘도 되지 않나요?

2. 자식 컴포넌트에서 useImperativeHandler을 사용하지 않고childRef.current = {

 addAge:()=>{}, getNameLength:()=>{}

}

처럼 넣어도 사용할 수 없을까요?

답변 1

1

이재승님의 프로필 이미지
이재승
지식공유자

안녕하세요
그렇게 하셔도 되지만 몇 가지 문제가 있습니다

1. ref 가 함수인 경우에는 예외 처리가 필요합니다
2. 컴포넌트가 언마운트 될 때는 ref.current 가 null 이 되도록 해야합니다

물론 위 두 가지 모두 코드를 더 작성해서 해결할 수 있지만, useImperativeHandle 가 자동으로 해주니 편리합니다 (그리고 안전합니다)

Boom님의 프로필 이미지
Boom

작성한 질문수

질문하기