【发布时间】:2020-03-12 04:23:16
【问题描述】:
如果您有 500 个组件,每个组件都有一个 ref,您将如何找到用户关注的组件?所有带有ref 的组件都是可聚焦的元素,例如<input />、<textarea /> 等。为简单起见,所有refs 都可以从单个顶级组件访问。
如果您的 React 组件具有 classNames,这非常简单 - 但是如果您想找到 document.activeElement 的 ref,是否有某种方法可以实现这一目标而不必求助于 classNames?
为了说明我们没有classNames 的原因,我们通过emotion 使用JSS。仅仅为了这个目的而不得不手动分配一个className 是相当荒谬的。我没有想到任何明显的替代方案。
【问题讨论】:
-
这是您可以通过
onFocus事件而不是使用参考来实现的吗?你能创建一个代码框吗? -
同意 Dennis,您可以使用焦点处理程序来访问事件对象上的任何可用数据并将其存储在您的状态中。
标签: javascript reactjs focus react-dom