2016-03-05 88 views
3

PanResponder方法通过了ResponderSyntheticEvent,其nativeEvent.target是一个React标签(它只是一个Number)。这是由findNodeHandle返回的相同标记。如何从标签获取ReactElement?

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

编辑:

我可以使用ReactNativeTagHandles.tagToRootNodeID[tag]获得 “根节点ID”。现在我怎么能从那里得到ReactElement

+0

你找到答案了吗? – Piotr

+0

@Piotr AFAIK,不可能获得与特定“标签”关联的“ReactElement”。 – aleclarson

回答

0
var ReactNativeComponentTree = require('ReactNativeComponentTree'); 

var reactInstance = ReactNativeComponentTree.getInstanceFromNode(reactTag); 

这是只有在版本facebook/react> = 15.0.2

你可以看到ReactNativeComponentTree定义here

+0

在我的React Native项目中,我不得不使用从'react-native/Libraries/Renderer/shims/ReactNativeComponentTree'中导入ReactNativeComponentTree;'以使其正常工作。这让我觉得它正在移动,因此我们不应该使用它。 – hippietrail

+0

@hippietrail如果你使用[metro-bundler](https://github.com/facebook/metro-bundler),文件位置没有什么区别,因为它在文件中有'@providesModule ReactNativeComponentTree'标题评论。 – aleclarson