2017-01-30 1 views
2

Ist es möglich, den übergeordneten Knoten des Ereignisziels auf dem virtuellen DOM zu erhalten?Antwort Ereignisziel Elternknoten

In meiner grundlegenden Reaktionskomponente habe ich eine Methode, die aus onClick-Ereignis ausgelöst wird, möchte ich die übergeordneten virtuellen DOM-Knoteneigenschaften abrufen.

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

} 
+0

Vielleicht poste mehr von Ihrem Code und warum Sie dies tun müssen, da es möglicherweise einen besseren Weg gibt. – noj

+0

Das click-Ereignis löst ein Modal aus, dessen Inhalt gefüllt wird, um festzustellen, welche Referenz übergeben wurde –

Antwort

0

Ja. React funktioniert mit einem virtuellen DOM-Modell und aktualisiert das echte Browser-DOM nur bei Bedarf. Die Ereignisse in React funktionieren auch auf einem virtuellen DOM und heißen synthetic Ereignisse. Wenn Sie das zugrunde liegende Ereignis auf Browserebene aus irgendeinem Grund benötigen, verwenden Sie einfach das Attribut nativeEvent, um it zu erhalten.

Es gibt einige Einschränkungen in Virtual DOM Reaktion, die Sie von here lesen können:

Auch this kann hilfreich sein, und erklärt den Unterschied zwischen dem virtuellen Dom und Browser DOM.

Browser DOM ist nur eine Abstraktion der Elemente auf der Seite, und React DOM wäre eine Abstraktion dieser Abstraktion.

Die render Methode der ReactDOM ist entscheidend, wie wir reagieren Elemente Browser DOM senden:

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 

In Reagieren wir mit Elementen reagieren und Reagieren Komponenten handelt.

enter image description here

Da Reagieren Element eine virtuelle Darstellung eines DOM-Element ist, mit den Ereignissen zu arbeiten und die Eltern zu fangen, müssen Sie Komponenten eine dieser drei Arten reagieren erstellen:

enter image description here

Um die Eltern in der Click-Ereignis zum Beispiel navigieren Sie dies überprüfen können:

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

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

Verwandte Themen