如何获取react元素的rootNodeID

时间:2016-05-24 15:18:39

标签: reactjs react-native

我需要根据事件目标是否是特殊视图来捕获事件 像view._rootNodeID === 'event.dispatchMarker'这样的东西。

但似乎没有办法获得_rootNodeID,因为我唯一可以获得的参考不是实际的ReactNativeBaseComponent,而是用baking data instance来构建ReactNativeBaseComponent 。如果我正确理解源代码,那么ReactNativeBaseComponent就是真正拥有_rootNodeID的人 我可以改变react-native源代码来实现我想要的但我想确保没有更好的方法。

2 个答案:

答案 0 :(得分:0)

ReactInstanceMap存在。

const ReactInstanceMap = require('ReactInstanceMap');

const inst = ReactInstanceMap.get(view);

view === inst.getPublicInstance();

答案 1 :(得分:-1)

似乎我总是倾向于使事情复杂化......为什么我不直接在特殊视图中处理触摸事件?
我必须盲目地不注意名为_reactInternalInstance的属性来引用实际元素。虽然这样做breaks encapsulation