2017-01-31 4 views
1

Ich habe eine Komponente mit es6 Klassensyntax erstellt. Es ist eine einfache Komponente mit nur einem vielfältigen und etwas Styling. Dann möchte ich in der übergeordneten Komponente (app genannt) diese Komponente rendern und ihr ein onClick geben, das den onclick-Handler der Eltern aufruft. Bisher machen die Eltern das Kind etwa so:React-Komponente ruft onClick-Handler nicht auf

<child_component onClick={this.clickhandler}> 

Und dann habe ich eine Methode in dieser übergeordneten Komponente, die ich auf den übergeordneten Kontext in dem Konstruktor gebunden habe.

Die Komponente rendert, aber der Click-Handler wird nie aufgerufen, wenn ich auf die Komponente klicke. Irgendeine Idee warum?

+0

Haben Sie ausgecheckt [diese Antwort] (http://stackoverflow.com/questions/22469968/ can-we-attach-click-handlers-zu-custom-child-Komponenten)? –

+0

Mögliches Duplikat von [können wir Click-Handler an benutzerdefinierte untergeordnete Komponenten anhängen] (http://stackoverflow.com/questions/22469968/can-we-attach-click-handlers-to-custom-child-components) –

Antwort

4

Da untergeordnete Komponente kein natives DOM-Element ist, sondern eine andere React-Komponente, ist onClick wie hier definiert einfach eine Eigenschaft dieser Komponente. Was Sie tun müssen, ist, im Inneren des Kindes Komponente der onClick der prop passieren Ereignis onClick auf ein DOM Komponente:

var ChildComponet= React.createClass({ 
render: function() { 
return (
    <div className="childcomponent" onClick={this.props.onClick}> 
    ... 
    </div> 
); 
} 
}); 
+0

Funktioniert super! Ich wusste, dass es so etwas sein musste! – Silvertail

Verwandte Themen