El evento onChange
en React se usa para capturar cambios en los elementos de entrada (input
, textarea
, select
). Se emplea principalmente para actualizar el estado de un componente y reflejar los cambios en tiempo real.
onChange
en componentes controlados
En React, un componente controlado es aquel cuyo valor es manejado por el estado de React en lugar del DOM. Para esto, onChange
se combina con useState
en componentes funcionales o con this.setState
en componentes de clase.
useState
en un componente funcional
import { useState } from "react";
function Formulario() {
const [nombre, setNombre] = useState("");
const handleChange = (event) => {
setNombre(event.target.value);
};
return (
<div>
<input type="text" value={nombre} onChange={handleChange} placeholder="Escribe tu nombre" />
<p>Nombre ingresado: {nombre}</p>
</div>
);
}
import React, { Component } from "react";
class Formulario extends Component {
constructor(props) {
super(props);
this.state = { nombre: "" };
}
handleChange = (event) => {
this.setState({ nombre: event.target.value });
};
render() {
return (
<div>
<input type="text" value={this.state.nombre} onChange={this.handleChange} placeholder="Escribe tu nombre" />
<p>Nombre ingresado: {this.state.nombre}</p>
</div>
);
}
}
onChange
en un textarea
<textarea value={mensaje} onChange={(e) => setMensaje(e.target.value)} />
onChange
en un select
<select value={opcion} onChange={(e) => setOpcion(e.target.value)}>
<option value="op1">Opción 1</option>
<option value="op2">Opción 2</option>
</select>
Jorge García
Fullstack developer