我需要根据事件目标是否是特殊视图来捕获事件
像view._rootNodeID === 'event.dispatchMarker'
这样的东西。
但似乎没有办法获得_rootNodeID
,因为我唯一可以获得的参考不是实际的ReactNativeBaseComponent
,而是用baking data instance
来构建ReactNativeBaseComponent
。如果我正确理解源代码,那么ReactNativeBaseComponent
就是真正拥有_rootNodeID的人
我可以改变react-native源代码来实现我想要的但我想确保没有更好的方法。
答案 0 :(得分:0)
const ReactInstanceMap = require('ReactInstanceMap');
const inst = ReactInstanceMap.get(view);
view === inst.getPublicInstance();
答案 1 :(得分:-1)
似乎我总是倾向于使事情复杂化......为什么我不直接在特殊视图中处理触摸事件?
我必须盲目地不注意名为_reactInternalInstance
的属性来引用实际元素。虽然这样做breaks encapsulation。