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;

  

posted @   我是格鲁特  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示