frontend-interview-question-and-answer icon indicating copy to clipboard operation
frontend-interview-question-and-answer copied to clipboard

[腾讯一面]React中ref转发

Open sufuwang opened this issue 4 years ago • 1 comments

我期望的重点:ref转发的使用场景 非常感谢您的回答。

sufuwang avatar Mar 31 '20 07:03 sufuwang

可以用于获取函数式组件的ref

const ref = React.createRef();
<FunComp ref={ref} />

由于FunComp是函数式组件,没有实例,所以我们没有办法获得函数式组件的ref,在这我们就可以使用ref转发来解决:

const FunComp = React.forwardRef((props, ref) => (
 // 内部为FunComp组件的实现逻辑,在这里面你可以把ref赋值给你想赋值的DOM节点
));

之后你就可以直接在FunComp组件传ref了:

<FunComp ref={ref} />

ZhaoTim avatar Jul 03 '20 09:07 ZhaoTim