【发布时间】:2018-08-24 12:46:41
【问题描述】:
我遇到了一个我不知道如何“正确”解决的问题。
我有两个组件,我们称它们为parent 和child。child 组件是通过调用创建它的函数“生成”的,我们称这个函数为child creator。
parent 组件有一个按钮,它显示/隐藏child,但也假设.focus() HTML dom 节点是子节点。现在我通过状态实现了显示/隐藏,但我不知道如何将javascript的.focus()应用到孩子的HTML dom节点上。
还有一个小问题...child 组件正在通过调用一个普通的旧 javascript 函数来“生成”和“返回”,我们称之为createChild。
这是因为子组件需要根据传递的参数有很大的不同,但是,它还需要在整个应用程序中重用,因此createChild 函数确保所有 @ 987654334@ 组件是相同的,给定相同的输入。
我尝试将ref 传递给创建者,但是由于ref 不是道具,因此无法访问。由于我无法传递ref,因此在单击按钮时“抓取”子节点的 dom 节点以便.focus() 它们的正确方法是什么?
【问题讨论】:
-
你能提供一些codesandbox中的代码或一些类似的服务吗?
-
您可以将
ref作为道具传递。你试过了吗? -
@devserkan 你不能,因为创建者是一个普通的函数,React 不允许它
-
@LazarNikolic codesandbox.io/s/lyj6x2948m
-
编辑您的问题以包含代码框
标签: javascript reactjs ref