Die Reaktionsmethode zum Festlegen, welche Option für ein Auswahlfeld ausgewählt wird, besteht darin, eine spezielle valueRequisite für sich <select>selbst festzulegen, die dem valueAttribut für das <option>Element entspricht, das Sie auswählen möchten. Für eine multipleAuswahl kann diese Requisite stattdessen ein Array akzeptieren.
Nun , da dies ein spezielles Attribut ist, ich frage mich , was der kanonische Weg ist , um Abrufen der ausgewählten Optionen im gleichen Array-of-Option-Werte-Struktur , wenn der Benutzer der Dinge ändert (so dass ich es durch einen Rückruf an einen passieren kann übergeordnete Komponente usw.), da vermutlich nicht dieselbe valueEigenschaft für das DOM-Element verfügbar ist.
Um ein Beispiel zu verwenden, würden Sie mit einem Textfeld Folgendes tun (JSX):
var TextComponent = React.createClass({
handleChange: function(e) {
var newText = e.target.value;
this.props.someCallbackFromParent(newText);
},
render: function() {
return <input type="text" value={this.props.someText} onChange={this.handleChange} />;
}
});
Was ist das Äquivalent ???für diese Mehrfachauswahlkomponente?
var MultiSelectComponent = React.createClass({
handleChange: function(e) {
var newArrayOfSelectedOptionValues = ???;
this.props.someCallbackFromParent(newArrayOfSelectedOptionValues);
},
render: function() {
return (
<select multiple={true} value={this.props.arrayOfOptionValues} onChange={this.handleChange}>
<option value={1}>First option</option>
<option value={2}>Second option</option>
<option value={3}>Third option</option>
</select>
);
}
});
selects in einem Array kombiniert ? Sagen Sie, nachdem Sie sie alle über ergriffen habendocument.querySelectorAll('select')?