Expo Playground

Evento onChangeText

onChangeText es como tu app sabe lo que el usuario está tecleando. Cada vez que escribe o borra un carácter, esta función se ejecuta con el texto completo actualizado.

const [name, setName] = useState("");

<TextInput
  value={name}
  onChangeText={setName}
  placeholder="Escribe tu nombre"
/>;

Inputs controlados vs. no controlados

El patrón de arriba es un input controlado — React es dueño del estado:

// Controlado: value + onChangeText juntos
<TextInput value={name} onChangeText={setName} />

Este es el patrón recomendado porque:

  • Siempre sabes el valor actual
  • Puedes validar, transformar o limitar lo que se escribe
  • La interfaz se mantiene sincronizada con tu estado

Transformar la entrada

Como onChangeText te da el texto crudo, puedes transformarlo antes de guardarlo:

// Forzar mayúsculas
<TextInput
  value={code}
  onChangeText={(text) => setCode(text.toUpperCase())}
  placeholder="Escribe el código"
/>

// Limitar a 10 caracteres
<TextInput
  value={pin}
  onChangeText={(text) => setPin(text.slice(0, 10))}
  placeholder="Escribe tu PIN"
/>

Comparación con la web

WebReact Native
Evento onChangeString onChangeText
e.target.valueArgumento directo
<input type="...">Props de TextInput

Intenta esto: Crea un campo de búsqueda que filtre una lista de elementos conforme el usuario escribe, usando onChangeText.

Ve este concepto en acción con resaltado interactivo de código

Probar en el Playground