【问题标题】:Using React JS .12, how can the ownee know what ref it has been assigned使用 React JS .12,所有者如何知道它被分配了什么 ref
【发布时间】:2014-11-04 11:52:46
【问题描述】:

我有一个问题,我整晚都在努力解决。我最近升级到了 .12,但我的子(拥有者)组件在获取给定的 ref 时遇到了问题。

我知道 ref 属性已从 this.props 中删除,但我似乎无法在我的子组件中的任何地方找到它!

差不多

typeof this.ref === "未定义"

任何想法都会很棒!我厌倦了今晚的战斗。签字。

【问题讨论】:

  • 你真的真的真的不需要这样做。

标签: javascript reactjs


【解决方案1】:

一些人在不同的地方评论说“你不应该这样做”。这是相当无益的,因为它没有解释原因,所以我想我会花时间这样做。

我想不出一个元素需要知道它自己的 ref 的充分理由,该信息用于它的所有者与其进行通信。如果你真的需要知道它,据我所知你可以在当前版本的 React 中使用 this._currentElement.ref。

但是。 _currentElement 带有下划线前缀的原因是因为它是 React 内部的,它是一个实现细节。 React 的 API 并不能保证这一点,对 React 库的任何更新都可能破坏您可以使用当前版本执行此操作的事实(假设您更新了正在使用的版本)。这也意味着您无法保证 this._currentElement.ref 实际上是 ref。它可能有 50% 的时间,而 50% 的时间它可能是垃圾或未定义。你不知道,因为它是一个实现细节,库的实现与你无关,只有 API 是。

因此,我强烈建议您重新考虑为什么需要依赖这些数据,并尝试了解如何以不需要的方式重构您的 React 视图。

【讨论】:

    【解决方案2】:

    睡了一会儿就找到了!

    this._currentElement.ref

    我将它用于骨干模型集成!

    【讨论】:

    • 你不应该这样做
    • @zackify 所说的,这里是坏魔力。
    猜你喜欢
    • 2020-12-13
    • 2011-06-28
    • 2020-12-04
    • 1970-01-01
    • 2011-06-14
    • 2020-04-15
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多