Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

668
Vistas
Evento OnChange usando React JS para el menú desplegable
var MySelect = React.createClass({ change: function(){ return document.querySelector('#lang').value; }, render: function(){ return( <div> <select id="lang"> <option value="select" onChange={this.change}>Select</option> <option value="Java" onChange={this.change}>Java</option> <option value="C++" onChange={this.change}>C++</option> </select> <p></p> <p value={this.change}></p> </div> ); } }); React.render(<MySelect />, document.body);

El evento onChange no funciona.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

El evento de cambio se desencadena en el elemento <select> , no en el elemento <option> . Sin embargo, ese no es el único problema. La forma en que definió la función de change no provocará una nueva representación del componente. Parece que es posible que aún no hayas comprendido completamente el concepto de React, por lo que tal vez "Pensar en React" te ayude.

Debe almacenar el valor seleccionado como estado y actualizar el estado cuando cambie el valor. Actualizar el estado activará una nueva representación del componente.

 var MySelect = React.createClass({ getInitialState: function() { return { value: 'select' } }, change: function(event){ this.setState({value: event.target.value}); }, render: function(){ return( <div> <select id="lang" onChange={this.change} value={this.state.value}> <option value="select">Select</option> <option value="Java">Java</option> <option value="C++">C++</option> </select> <p></p> <p>{this.state.value}</p> </div> ); } }); React.render(<MySelect />, document.body);

También tenga en cuenta que los elementos <p> no tienen un atributo de value . React/JSX simplemente replica la conocida sintaxis HTML, no introduce atributos personalizados (con la excepción de key y ref ). Si desea que el valor seleccionado sea el contenido del elemento <p> , simplemente colóquelo dentro, como lo haría con cualquier contenido estático.

Obtenga más información sobre el manejo de eventos, el estado y los controles de formulario:

  • http://facebook.github.io/react/docs/interactividad-y-dinamica-uis.html
  • http://facebook.github.io/react/docs/forms.html
over 4 years ago · Santiago Trujillo Denunciar

0

Ganchos de reacción (16.8+):

 const Dropdown = ({ options }) => { const [selectedOption, setSelectedOption] = useState(options[0].value); return ( <select value={selectedOption} onChange={e => setSelectedOption(e.target.value)}> {options.map(o => ( <option key={o.value} value={o.value}>{o.label}</option> ))} </select> ); };
over 4 years ago · Santiago Trujillo Denunciar

0

import React, { PureComponent, Fragment } from 'react'; import ReactDOM from 'react-dom'; class Select extends PureComponent { state = { options: [ { name: 'Select…', value: null, }, { name: 'A', value: 'a', }, { name: 'B', value: 'b', }, { name: 'C', value: 'c', }, ], value: '?', }; handleChange = (event) => { this.setState({ value: event.target.value }); }; render() { const { options, value } = this.state; return ( <Fragment> <select onChange={this.handleChange} value={value}> {options.map(item => ( <option key={item.value} value={item.value}> {item.name} </option> ))} </select> <h1>Favorite letter: {value}</h1> </Fragment> ); } } ReactDOM.render(<Select />, window.document.body);
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda