ref 전달은 컴포넌트를 통해 자식 중 하나에 ref를 자동으로 전달하는 기법
재사용 가능한 컴포넌트 라이브러리와 같은 어떤 컴포넌트에서는 유용
function parent() {
return (
<div>
<Children />
</div>
)
}
function Children() {
const hnadleFunc = () =>{
console.log("hello world")
}
return (
<buntton>
호로롱
</buntton>
)
}
여기서 자식의 button에 접근할 수 있는 방법
우린 흔히 ref를 생각함
이 ref를 부모에서 자식으로 props로 넘겨주는 방법이 forwardref임
function parent() {
const childRef = useRef
return (
<div>
<Children ref={childRef} />
</div>
)
}
const Children = React.forwardRef((props,ref)=>{
const hnadleFunc = () =>{
console.log("hello world")
}
return (
<buntton ref={ref}>
호로롱
</buntton>
)
})
forwardRef를 사용하여 부포 컴퍼넌트에서 자식 컴퍼넌트 안 함수 작동하기
function parent() {
const childRef = useRef
return (
<div>
<Children ref={childRef} />
<button onClick ={()=>{ref.current.handleFunc()}}
</div>
)
}
const Children = React.forwardRef((props,ref)=>{
useImperativeHandle(ref, () => ({
hnadleFunc() {
console.log("hello world")
},
}));
return (
<buntton ref={ref}>
호로롱
</buntton>
)
})