是否有可能獲取虛擬DOM上的事件目標的父節點?反應事件目標父節點
在我的基本反應組件中,我有一個從onClick事件觸發的方法,我想獲得父虛擬DOM節點屬性。
handleClick(e){
// The following code only gives me the actual DOM parent Node
ReactDOM.findDOMNode(e.target).parentNode
}
是否有可能獲取虛擬DOM上的事件目標的父節點?反應事件目標父節點
在我的基本反應組件中,我有一個從onClick事件觸發的方法,我想獲得父虛擬DOM節點屬性。
handleClick(e){
// The following code only gives me the actual DOM parent Node
ReactDOM.findDOMNode(e.target).parentNode
}
是的。 React適用於虛擬DOM模型,並且僅在需要時更新真實的瀏覽器DOM。 React中的事件也在虛擬DOM上工作,它們被稱爲synthetic事件。如果您發現由於某種原因需要基礎瀏覽器級別事件,則只需使用nativeEvent屬性即可獲得it。
有一些制約因素作出反應虛擬DOM,你可以從here閱讀:
此外,this可能會有所幫助,並解釋了虛擬大教堂和瀏覽器的DOM之間的區別。
瀏覽器DOM只是頁面元素的抽象,React DOM是抽象的抽象。
的ReactDOM
的render
方法是至關重要的,我們怎麼送反應的元素,以瀏覽器的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
在作出反應,我們正在處理的反應的元素和反應的組分。
由於陣營元素是一個DOM元素的虛擬表示,與事件一起使用,並抓到了父母,你需要創建一個陣營的這三種方式的組件之一:
要瀏覽點擊事件裏面的父母,例如,你可以檢查此:
var parent = this._reactInternalInstance._currentElement._owner._instance;
REF:is there any way to access the parent component instance in React?和http://jsfiddle.net/BinaryMuse/j8uaq85e/
也許會發布更多的代碼,爲什麼需要這樣做,因爲可能有更好的方法。 – noj
點擊事件觸發一個模式,它的內容填充由哪個引用已被傳遞決定 –