forwardRef
因为函数组件没有实例, 所以函数组件无法接收ref
属性,可以通过React.forwardRef()
来实现。
React.forwardRef
会创建一个React
组件,这个组件能够将其接受的 ref 属性转发到其组件树下的另一个组件(子组件)中。它接受渲染函数作为参数。React
将使用 props
和 ref
作为参数来调用此函数。此函数应返回 React
节点。
const FancyButton = React.forwardRef((props, ref) => (
<button ref={ref} className="FancyButton">
{props.children}
</button>
));