react native - react - Reaccionar nativo-Diferencia entre onChange vs onChangeText de TextInput
react native text input pattern (1)
onChangeText
es básicamente una versión simplificada de onChange
, por lo que puede usarlo fácilmente, sin la molestia de pasar por event.target.value
para obtener un valor cambiado.
Entonces, ¿cuándo deberías usar onChange
y cuándo onChangeText
?
Si tiene un formulario simple con pocas entradas de texto, o una lógica simple, puede ir directamente y utilizar onChangeText
<TextInput value={this.state.name} onChangeText={(text) => this.setState({name: text})}>
Si tiene formularios más complicados y / o tiene más lógica en el manejo de datos (como el manejo de texto de forma diferente al número) cuando el usuario cambia la entrada, entonces es mejor que con el onChange
, porque le brinda más flexibilidad. Por ejemplo:
handleChange(event) {
const {name, type, value} = event.nativeEvent;
let processedData = value;
if(type===''text'') {
processedData = value.toUpperCase();
} else if (type===''number'') {
processedData = value * 2;
}
this.setState({[name]: processedData})
}
<TextInput name="username" type="text" value={this.state.username} onChange={this.handleChange}}>
<TextInput name="password" type="number" value={this.state.password} onChange={this.handleChange}}>
No estoy seguro de cuándo usar onChange
vs onChangeText
en un componente TextInput
. Sé que onChangeText
acepta el texto modificado como un argumento en la devolución de llamada, pero ¿es por eso que usaría onChangeText
, ya que puede actualizar el estado dentro de la devolución de llamada?