Ich habe eine React-Komponente namens <SensorList />
, die viele Kind hat <SensorItem />
s (eine andere React-Komponente). Ich möchte in der Lage sein, ein onClick
Ereignis auf jedem <SensorItem />
von innerhalb <SensorList />
zu deklarieren. Ich habe versucht, folgendes zu tun:Reagieren onClick-Ereignis auf Komponente
sensorSelected: function(sensor) {
console.log('Clicked!');
},
render: function() {
var nodes = this.state.sensors.map(function(sensor) {
return (
<SensorItem onClick={ this.sensorSelected } />
);
}.bind(this));
return (
<div className="sensor-list">
{ nodes }
</div>
);
}
unnötig zu sagen, ich bekomme keine "Clicked!" in meiner Konsole auftauchen. Der React-Inspector in Chrome zeigt an, dass ein onClick
-Ereignis registriert ist, mit der obigen Funktion body, wie es sein sollte.
Ich schließe daher, dass ich onClick
Ereignisse auf die tatsächlichen <SensorItem />
Tags nicht registrieren kann (ich bin mir nicht sicher, warum das ist, jedoch). Wie kann ich das sonst erreichen?
Verstanden, hatte ich gedacht, vielleicht, dass eine Komponente automatisch auf alle Ereignisse an den Haupt DOM-Knoten weitergeleitet ('getDOMNode()'), aber es gibt keinen Grund, dass dies der Fall sein sollte. – GTF
Ich dachte, angenommen, war sicher, dass diese Genies bei Facebook gedacht hätten, dass es bequem wäre. Nicht praktisch genug, denke ich. – Cody
Um das hinzuzufügen, können Sie * all * Requisiten relativ leicht mit der Argument-Destrukturierungssyntax wie folgt an den Haupt-DOM-Knoten übergeben: '' const SensorItem = ({... reps}) => { return (