La forma de React para establecer qué opción se selecciona para un cuadro de selección, es establecer un value
accesorio especial en <select>
sí mismo, correspondiente al value
atributo en el <option>
elemento que desea seleccionar. Para multiple
seleccionar, este accesorio puede aceptar una matriz en su lugar.
Ahora que este es un atributo especial, me pregunto cuál es la forma canónica de recuperar las opciones seleccionadas en la misma estructura de matriz de valores de opción cuando el usuario cambia las cosas (para que pueda pasarlo a través de una devolución de llamada a un componente principal, etc.), ya que presumiblemente la misma value
propiedad no estará disponible en el elemento DOM.
Para usar un ejemplo, con un campo de texto, haría algo como esto (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} />;
}
});
¿Cuál es el equivalente a reemplazar ???
para este componente de selección múltiple?
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>
);
}
});
select
s en una matriz? ¿Diga después de agarrarlos a todos víadocument.querySelectorAll('select')
?