My Component is :
class TextInputComp extends Component {
constructor(props){
super();
this.state = { thetext: '' }
}
submitText = (text) => {
Alert.alert("Text Submitted!", text);
}
render() {
const renData = this.props.people((data, index) => {
return (
<View key={index} style={styles.card}>
<Text style={styles.names}> ID: {data.id} - Name: {data.name} </Text>
<TouchableOpacity
onPress={()=>this.refs.MyBox.focus()} >
<Text>Open</Text>
</TouchableOpacity>
</View>
)
});
return (
<View style={mystyles1.container}>
{renData}
<View>
<TextInput
ref='MyBox'
style={{height: 40}}
onChangeText={(thetext) => this.setState({thetext})}
/>
<TouchableOpacity
onPress = { () => this.submitText(this.state.thetext) }>
<Text style = {styles.ButtonText}> Submit </Text>
</TouchableOpacity>
</View>
</View>
);
}
}
I can show the data from {redData} and focus on TextInput when clicked on Open. I want to pass a value to the TextInput. Say I want to pass the data.name, so when onPress on Open, I want the data.name to be already at the start of the TextInput so I can pass it to the this.state.thetext.
How can I achieve this? Many thanks.
You can make your
TextInputcontrolled. For that you can passvalueprop toTextInputlike thisNow on focus, all you have to do is to set the
thetextstate with the value you want to display inTextInputlike this