(今天给大家介绍forwardRef高级组件的使用)
forwardRef是React中的一个高级组件 ,主要用于实现 ref转发 或 透传
即,将父组件的ref对象,传到子组件中,这样子组件与父组件都可以控制ref对象;
代码如下:
父组件:
如下代码中,定义的ref对象childRef , 将通过ref 属性,传给子组件
代码语言:javascript复制export function HookUseIh(props){
const childRef =useRef(null) // 定义的ref对象
const change =()=>{
childRef.current.focus();
}
return (
<div>
{/* 通过ref 属性,传给子组件 */}
<IHChild ref={childRef} />
<button onclick={change}>父组件中focus</button></div>
);
}
子组件 :
第二个参数inputRef ,即是父组件中传递过来的ref对象,子组件可直接使用
代码语言:javascript复制export React.forwardRef(IHChild(props,inputRef)=>
// inputRef即是父组件中传递过来的ref对象,子组件可直接使用
const onChange=()=>{
inputRef.current.focus();
}
return (<div>
子组件
<input ref={inputRef} type="text"/>
<button onclick={onChange}>change</button></div>
)
}