响应事件目标父节点

时间:2017-01-30 10:51:41

标签: reactjs virtual-dom

是否可以在虚拟DOM上获取事件目标的父节点?

在我的基本反应组件中,我有一个从onClick事件触发的方法,我想获得父虚拟DOM节点属性。

handleClick(e){ 
    // The following code only gives me the actual DOM parent Node
    ReactDOM.findDOMNode(e.target).parentNode 

}

1 个答案:

答案 0 :(得分:0)

是。 React适用于虚拟DOM模型,仅在需要时才会更新真实的Browser DOM。 React中的事件也适用于虚拟DOM,它们被称为synthetic事件。如果由于某种原因发现您需要基础浏览器级别事件,只需使用nativeEvent属性获取it

您可以从here读取React Virtual DOM中的一些限制:

此外,this可能会有所帮助,并解释Virtual Dom和Browser DOM之间的区别。

浏览器DOM只是页面元素的抽象,而React DOM将是该抽象的抽象。

render ReactDOM方法对于我们如何将React元素发送到浏览器DOM至关重要:

var React = require('react');
var ReactDOM = require('react-dom');
var root = React.createElement('div');
ReactDOM.render(root, document.getElementById('example'));
        ^ 
        |---- Where React elements from React Virtual DOM enter the Browser DOM

在React中,我们正在处理React Elements和React Components。

enter image description here

由于React Element是DOM元素的虚拟表示,要处理事件并捕获父元素,您需要以下列三种方式创建React组件:

enter image description here

例如,要在click事件中导航父级,您可以检查:

 var parent = this._reactInternalInstance._currentElement._owner._instance;

参考:is there any way to access the parent component instance in React?http://jsfiddle.net/BinaryMuse/j8uaq85e/