太原建站seo,传奇网页游戏制作,产品系统设计案例,企业网站的网络营销相关知识#xff1a;
useImperativeHandle forwardRef
相关代码#xff1a; 获取子组件实例#xff0c;由于这是函数组件#xff0c;没有this因此不能整体获取#xff0c;我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } fro…相关知识
useImperativeHandle forwardRef
相关代码 获取子组件实例由于这是函数组件没有this因此不能整体获取我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } from react;
import Child from ./child;
function Parent(props) {const childRef useRef();const changeChildText () {childRef.current.changeText();};return (div idparent style{{ border: 1px solid #ccc, padding: 10 }}h1parent page/h1button onClick{changeChildText}通过父组件实现子组件点击事件/buttonChild ref{childRef} //div);
}
export default Parent;解释父组件中通过属性ref想要获取通过childRef这个ref存放子组件实例 子组件接收这个ref然后给它身上绑定一些想要属性也就是useImperativeHandle的第二个参数返回值 子组件import React, { forwardRef, useImperativeHandle, useState } from react;export default forwardRef((props, ref) {const [text, setText] useState(child page);useImperativeHandle(ref, () {return {changeText,};});const changeText () {setText((prev) {return prev ★;});};return (div idchild style{{ background: #f1f1f1, padding: 20 }}h2{text} button onClick{changeText}改变文本/button/h2/div);
});