In einer React-Komponente für ein <select>
Menü muss ich das selected
Attribut auf der Option, die den Anwendungsstatus widerspiegelt.Reagieren JSX: Auswahl "ausgewählt" auf <select> Option
In render()
wird die optionState
vom Statuseigner an die SortMenu-Komponente übergeben. Die Optionswerte werden als props
von JSON übergeben.
render: function() {
var options = [],
optionState = this.props.optionState;
this.props.options.forEach(function(option) {
var selected = (optionState === option.value) ? ' selected' : '';
options.push(
<option value={option.value}{selected}>{option.label}</option>
);
});
// pass {options} to the select menu jsx
Allerdings löst dies einen Syntaxfehler bei der JSX-Kompilierung aus.
diese Weise wird der Syntaxfehler beseitigen, aber offensichtlich das Problem nicht lösen:
var selected = (optionState === option.value) ? 'selected' : 'false';
<option value={option.value} selected={selected}>{option.label}</option>
Ich habe auch versucht dies:
var selected = (optionState === option.value) ? true : false;
<option value={option.value} {selected ? 'selected' : ''}>{option.label}</option>
Gibt es eine empfohlene Weg, dies zu lösen?
Mit der aktuellen Version von React (0.9) Einstellung funktioniert das ausgewählte Attribut auf Optionen überhaupt nicht. Setzen Sie stattdessen das value-Attribut auf das select-Element. – liammclennan
+1 für die Freigabe des Werts = {OptionState}, nette kleine Trick. –
Können Sie Objekt übergeben oder nur Zeichenfolge Wert? –