【问题标题】:How can I get a ReactElement from a tag?如何从标签中获取 ReactElement?
【发布时间】:2016-03-05 18:06:51
【问题描述】:

PanResponder 方法被传递了一个 ResponderSyntheticEvent,其 nativeEvent.target 是一个 React 标记(它只是一个 Number)。这与findNodeHandle 返回的标签相同。

有没有办法从 React 标签中获取ReactElement

编辑:

我可以使用ReactNativeTagHandles.tagToRootNodeID[tag] 来获取“根节点ID”。现在我怎样才能从中获得ReactElement

【问题讨论】:

  • 你找到答案了吗?
  • @Piotr AFAIK,无法获取与特定“标签”关联的 ReactElement

标签: reactjs react-native


【解决方案1】:
var ReactNativeComponentTree = require('ReactNativeComponentTree');

var reactInstance = ReactNativeComponentTree.getInstanceFromNode(reactTag);

这仅适用于 facebook/react >= 15.0.2

的版本

你可以看到ReactNativeComponentTree定义了here

【讨论】:

  • 在我的 React Native 项目中,我必须使用 import ReactNativeComponentTree from 'react-native/Libraries/Renderer/shims/ReactNativeComponentTree'; 才能让它工作。这让我觉得它在移动,因此我们不应该使用它。
  • @hippietrail 如果您使用metro-bundler,文件位置不会有任何影响,因为它在文件头注释中有@providesModule ReactNativeComponentTree
猜你喜欢
  • 2016-01-09
  • 2013-10-29
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多