J'écoute le onChangeText
de trois entrées dans une vue. Mais au lieu d'utiliser trois gestionnaires distincts onChangeText
. Je voudrais passer dans le nom de l'état d'entrée de l'entrée pour le gestionnaire et lui faire définir l'état de cela.Comment gérer plusieurs événements de modification dans un gestionnaire?
J'ai essayé cet exemple mais e.target.value renvoie undefined
. En passant dans le name
comme second paramètre et e
comme le pointeur sur l'élément:
import React, { Component } from 'react';
import { View, StyleSheet, Alert, Image, TextInput } from 'react-native';
import { Constants } from 'expo';
export default class App extends Component {
state = {
setValue: 0,
travelValue: 0,
runValue: 0
};
_handleTextChange (e, name) {
var change = {};
change[name] = e.target.value;
this.setState(change);
}
render() {
return (
<View style={styles.container}>
<TextInput
value={this.state.setValue}
keyboardType = 'numeric'
onChangeText={this._handleTextChange.bind(this, 'setValue')}
style={{ width: 200, height: 44, padding: 8 }}
/>
<TextInput
value={this.state.travelValue}
keyboardType = 'numeric'
onChangeText={this._handleTextChange.bind(this, 'travelValue')}
style={{ width: 200, height: 44, padding: 8 }}
/>
<TextInput
value={this.state.runValue}
keyboardType = 'numeric'
onChangeText={this._handleTextChange.bind(this, 'runValue')}
style={{ width: 200, height: 44, padding: 8 }}
/>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
alignItems: 'center',
justifyContent: 'space-between',
paddingTop: Constants.statusBarHeight,
paddingBottom: '20%',
backgroundColor: '#ecf0f1',
},
});
Question:
Comment pouvez-vous gérer plusieurs événements de changement dans un gestionnaire?