将值传递给 TextInput onPress
Pass value to TextInput onPress
我的组件是:
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>
);
}
}
单击 Open
时,我可以在 TextInput
上显示来自 {redData}
和 focus
的数据。我想将一个值传递给 TextInput
。假设我想传递 data.name
,所以当 onPress
在 Open
时,我希望 data.name
已经在 TextInput
的开头,这样我就可以将其传递给 this.state.thetext
.
我怎样才能做到这一点?非常感谢。
你可以让你的TextInput
受到控制。为此,您可以像这样
将 value
道具传递给 TextInput
<TextInput
ref='MyBox'
style={{height: 40}}
value={this.state.thetext}
onChangeText={(thetext) => this.setState({thetext})}
/>
现在集中注意力,您所要做的就是将 thetext
状态设置为您想要在 TextInput
中显示的值,就像这样
<TouchableOpacity
onPress={()=>{this.refs.MyBox.focus(); this.setState({thetext: data.name})}} >
<Text>Open</Text>
</TouchableOpacity>
我的组件是:
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>
);
}
}
单击 Open
时,我可以在 TextInput
上显示来自 {redData}
和 focus
的数据。我想将一个值传递给 TextInput
。假设我想传递 data.name
,所以当 onPress
在 Open
时,我希望 data.name
已经在 TextInput
的开头,这样我就可以将其传递给 this.state.thetext
.
我怎样才能做到这一点?非常感谢。
你可以让你的TextInput
受到控制。为此,您可以像这样
value
道具传递给 TextInput
<TextInput
ref='MyBox'
style={{height: 40}}
value={this.state.thetext}
onChangeText={(thetext) => this.setState({thetext})}
/>
现在集中注意力,您所要做的就是将 thetext
状态设置为您想要在 TextInput
中显示的值,就像这样
<TouchableOpacity
onPress={()=>{this.refs.MyBox.focus(); this.setState({thetext: data.name})}} >
<Text>Open</Text>
</TouchableOpacity>