我有以下代码,我想得到一个已经输入到文本框中的值的警报,我该如何访问该值? (在alertFunction内):
alertFunction(text){
Alert.alert(this.state.text);
}
validate(text, type) {
num = /^[0-9]+$/
if (type == 'telephone') {
if (num.test(text)) {
this.setState({
telephoneValidate: true,
buttonInvalid: false,
})
} else {
this.setState({
telephoneValidate: false,
buttonInvalid: true,
})
}
}
}
<TextInput
style={[!this.state.telephoneValidate ? { borderWidth: 3, borderColor: 'red' } : null]}
keyboardType='numeric'
onChangeText={(text) => this.validate(text, 'telephone')}
value={this.state.myNumber}
maxLength={10} //setting limit of input
/>
<TouchableOpacity style={[styles.ButtonStyle, { backgroundColor: this.state.buttonInvalid ? '#607D8B' : '#009688' }]}
activeOpacity={.5}
disabled={this.state.buttonInvalid}
onPress={this.alertFunction}
>
<Text style={styles.TextStyle}>Submit</Text>
</TouchableOpacity>
由于
答案 0 :(得分:0)
你的状态对象有点混乱。对于文本输入组件,您将值绑定到 this.state.myNumber ,但如果正确验证,则永远不会尝试调整此值。但是,您尝试为警报引用 this.state.text 。你需要做几件事。
首先调整验证以在有效时更新您关注的状态对象。
validate(text, type){
..is valid
this.setState({
..other items,
myNumber: text
});
这将正确更新您的状态,然后当您想要提醒时,您可以访问该属性。
alertFunction(text){
Alert.alert(this.state.myNumber);
}