是否可以获得 props.children 的 ref ?

2024-01-19

我想获取子组件的引用。做这个的最好方式是什么?

class Child extends React.Component {
  render() {
    return <div>Child</div>;
  }
}   

class GetRef extends React.Component {

  componentDidMount() {
     console.log(this.props.children.ref)
  }


  render() {
    return this.props.children
  }
}

编辑: 所以我可以这样使用它

<GetRef><Child/></GetRef>

我假设GetRef孩子们只有one孩子,那么你可以检索唯一的引用child具有此代码的组件

class Child extends React.Component {

  render() {
    return <div>Child</div>;
  }
}  

class GetRef extends React.Component {

  componentDidMount() {
    console.log(this.ref);
  }

  render() {
    const childElement = React.Children.only(this.props.children);

    return React.cloneElement(
      childElement, 
      { ref: el => this.ref = el }
    );
  }

}

class App extends Component {

  render() {
    return <GetRef><Child/></GetRef>;
  }

}

这里是完整的例子 https://stackblitz.com/edit/react-bsmrci在堆栈闪电战上

If this.props.children有多个孩子,您将需要迭代孩子并存储所有refs到一个数组中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以获得 props.children 的 ref ? 的相关文章

随机推荐

  • 生成PasswordHash和SecurityStamp

    我有一个Registrations新用户被放入的表 稍后的过程会为该用户创建一个数据库 并从注册表中的数据 电子邮件和姓名 插入 ASP NET Identity User 记录 我想扩展这一点 以便在注册时 用户可以输入密码 然后该密码将
  • Google 云端硬盘 SDK 和 iOS 5.1

    SDK 与 iOS 5 兼容还是仅与 iOS 6 兼容 Google 示例和 iOS 6 模拟器和设备 一切正常 但 Xcode 返回 iOS 5 1 模拟器和设备 运行时错误 我正在使用 Xcode 4 5 2 我已经检查了 iOS 部署
  • 我想摆脱 .rs.WorkingDataEnv 中的 cacheKey 错误

    Error in exists cacheKey where rs WorkingDataEnv inherits FALSE invalid first argument 我用的是rm R 中的函数可删除几个数据帧 他们已被成功删除 但是
  • 关闭 Windows 资源管理器的特定实例

    我在尝试时遇到问题WM CLOSE一个 Window 资源管理器进程 发送该消息将尝试关闭 Windows Shell 资源管理器进程并提示用户关闭窗口 这不是预期的行为 我想知道如何解决它 如何优雅地关闭各个资源管理器窗口 而不同时关闭整
  • 交叉编译 C++ 项目,通用 ELF 中的重定位 (EM: 3)

    我从事 C 项目已经有一段时间了 但想将其移植到我的 Arm 处理器上 我已经拥有所有交叉编译工具 我正在使用 CodeSourcery 并且认为我可以更改我的 makefile 以指向该编译器 它使用默认的 g 编译得很好 但是当尝试 m
  • 仅在 kernel.terminate 事件后返回响应

    我的理解kernel terminate是它触发了after响应已返回给客户端 在我的测试中 情况似乎并非如此 如果我放一个sleep 10 在 kernel terminate 上调用的函数中 浏览器也会等待 10 秒 处理似乎是在发送响
  • 动态数组和预建数据

    在C语言中 我尝试执行以下操作 typedef struct int length int items 1 wchararray t typedef struct long hash wchararray t chars 2 string
  • 另一个 KeyListener/KeyBinding 问题

    呃 我很抱歉 MadProgrammer 但我只是无法让 KeyBinding 按我想要的方式工作 但我会继续查看更多教程 直到我弄清楚 但现在我已经卡住了到 KeyListener 并且它可以工作 但现在我遇到一个问题p move 实际上
  • 停止 ng2-idle 进行量角器测试

    我在用着ng2 idle https github com HackedByChinese ng2 idle一段时间后自动注销用户 我在 appComponent 构造函数中初始化它 import Idle DEFAULT INTERRUP
  • v4.x 中的 d3.time.format.multi

    在我的代码的早期版本中 我曾经像这样设置适当的区域设置格式 format decimal thousands grouping 3 currency dateTime a b e X Y date d m Y time H M S peri
  • ASP.net MVC 验证挂钩

    我在 ASP net MVC 3 中有以下视图 model Models CreateProjectViewModel Scripts jquery validate min js gt Scripts jquery validate un
  • Python 正则表达式,多行匹配模式..为什么这不起作用?

    我知道 为了解析 我应该理想地删除所有空格和换行符 但我这样做只是为了快速修复我正在尝试的东西 我不明白为什么它不起作用 我已经将不同的文本区域包装在我的文本中 带有 1 之类的包装器的文档 并尝试基于此进行解析 但无论我尝试什么 它都不起
  • 对 sklearn Pipeline + ColumnTransformer 中的列应用多个预处理步骤

    我第一次尝试 sklearn pipeline 并使用 Titanic 数据集 我想首先将缺失值归咎于Embarked然后进行一次热编码 而在Sex属性 我只想进行一种热编码 所以 我有以下步骤 其中两个步骤用于Embarked 但它并没有
  • Python Pandas:ValueError:使用可迭代设置时必须具有相等的 len 键和值

    我有一个要更改的 DataFrame df loc rowId colId myDict 将字典分配给条目 rowId colId 结果我收到以下错误 ValueError Must have equal len keys and valu
  • GWT编译的应用程序无法与php后端交互

    我正在开发一个带有 PHP 后端的 GWT 应用程序 开发过程中 一切正常 我正在从我的 webroot 开发我的 GWT 应用程序 一切都工作正常并且与 php 正确交互 但是 当我编译 GWT 应用程序并将其放置在原始 GWT 应用程序
  • jquery 未在 chrome 扩展中加载

    我正在尝试将本地 jquery 文件加载到 chrome 扩展中 这就是我的 manifest json 的样子 name TV version 0 1 description Search icons 128 icon jpg optio
  • 有没有生成三角波的单行函数?

    以类似的方式modulo产生锯齿波 它不必是连续的 这就是我的意思 int m 10 int x 0 int i 0 while i lt m 3 printf d x x x x m i 生成一个序列 0 9 三次 如下所示 请注意 峰右
  • 从 .Net 4.6.1 单元测试引用 .Net 标准项目时缺少方法异常

    运行使用的 Net 4 6 1 单元测试时出现以下异常System IO Compression ZipFile Open 如果单元测试项目引用 Net Standard 2 0 程序集 System MissingMethodExcept
  • Cocoapods/git“分离头”状态

    cocoapods git 有问题 我正在尝试向项目添加新的 Pod 但出现以下问题 关键是 当一名团队成员尝试将 Pod 添加到项目时 他没有遇到这个问题 尝试重新安装 更新 cocoapods git 删除并重新克隆存储库 我已经安装了
  • 是否可以获得 props.children 的 ref ?

    我想获取子组件的引用 做这个的最好方式是什么 class Child extends React Component render return div Child div class GetRef extends React Compon