2016-03-05 95 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