react父组件调用子组件内部的dom或方法
在 React 中,通过 React.forwardRef
和 useImperativeHandle
可以实现将父组件的 ref
转发给子组件,从而引用子组件的 DOM 或方法。以下是实现的步骤和代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import React, { forwardRef, useImperativeHandle, useRef } from "react" ; const Child = forwardRef((props, ref) => { const inputRef = useRef(); //暴露给父组件的方法 useImperativeHandle(ref, () => ({ focus: () => { inputRef.current.focus(); }, clear: () => { inputRef.current.value = "" ; }, })); return <input ref={inputRef} type= "text" placeholder= "Enter something" />; }); function Parent() { const childRef = useRef(); const handleFocus = () => { childRef.current.focus(); }; const handleClear = () => { childRef.current.clear(); }; return ( <div> <Child ref={childRef} /> <button onClick={handleFocus}>Focus Input</button> <button onClick={handleClear}>Clear Input</button> </div> ); } export default Parent; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!