Javascript android react native上TextInput的怪异行为
我有一个注册表单,当用户聚焦文本输入并弹出键盘时,我想在其中清除文本输入 这种行为在iOS上运行得很好,但是在android上,第一件事是clearTextOnFocus不工作,第二件事是我无法在地址文本输入中键入任何内容,我想知道这里出了什么问题,因为它在iOS上运行得非常好Javascript android react native上TextInput的怪异行为,javascript,android,react-native,textinput,Javascript,Android,React Native,Textinput,我有一个注册表单,当用户聚焦文本输入并弹出键盘时,我想在其中清除文本输入 这种行为在iOS上运行得很好,但是在android上,第一件事是clearTextOnFocus不工作,第二件事是我无法在地址文本输入中键入任何内容,我想知道这里出了什么问题,因为它在iOS上运行得非常好 export default class SignupScreen extends Component { static navigationOptions = { title: strings.signup,
export default class SignupScreen extends Component {
static navigationOptions = {
title: strings.signup,
headerTintColor:'black'
};
constructor(props) {
super(props);
this.state = { loading:true,loginText:strings.username,pwdText:strings.password,nameText:strings.name,phoneNoText:strings.phone,addressText:strings.address,lineIdText:strings.line,loading:false };
}
render() {
const { navigate } = this.props.navigation;
return (
<ImageBackground
source={require('./images/marble.jpg')}
style={styles.backgroundImage}>
<KeyboardAwareScrollView>
<View style={styles.container}>
<Spinner visible={this.state.loading} textContent={"Loading..."} textStyle={{color: '#FFF'}} />
<Image style = {styles.logoFit} resizeMode="contain" source={require('./images/Logo1.png')}/>
<View>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.loginText }
onChangeText={(textInputValue1) => this.setState({loginText:textInputValue1})} keyboardType='email-address' ></TextInput>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.pwdText}
onChangeText={(textInputValue2) => this.setState({pwdText:textInputValue2})}></TextInput>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.phoneNoText}
onChangeText={(textInputValue) => this.setState({phoneNoText:textInputValue})}></TextInput>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.nameText}
onChangeText={(textInputValue) => this.setState({nameText:textInputValue})}></TextInput>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.addressText}
onChangeText={(textInputValue) => this.setState({adressText:textInputValue})}></TextInput>
<TextInput clearTextOnFocus={true} style={styles.textInput} value={this.state.lineIdText}
onChangeText={(textInputValue) => this.setState({lineIdText:textInputValue})}></TextInput>
</View>
<View style={styles.buttonSection}>
<TouchableOpacity onPress = {this.onSignup}>
<View style = { styles.donebutton}>
<Text style = {{color: 'white'}}>{strings.signup}</Text>
</View>
</TouchableOpacity>
</View>
</View>
</KeyboardAwareScrollView>
</ImageBackground>
);
}
}
导出默认类签名Upscreen扩展组件{
静态导航选项={
标题:strings.signup,
HeaderIntColor:“黑色”
};
建造师(道具){
超级(道具);
this.state={loading:true,loginText:strings.username,pwdText:strings.password,nameText:strings.name,phoneNoText:strings.phone,addressText:strings.address,lineIdText:strings.line,loading:false};
}
render(){
const{navigate}=this.props.navigation;
返回(
this.setState({loginText:textInputValue1})keyboardType='email-address'>
this.setState({pwdText:textInputValue2})}>
this.setState({phoneNoText:textInputValue})}>
this.setState({nameText:textInputValue})}>
this.setState({AddressText:textInputValue})}>
this.setState({lineIdText:textInputValue})}>
{strings.signup}
);
}
}
这方面的任何帮助都将非常有用。问题可能是您设置了
TextInput
的value
属性。如果设置了value
,它将覆盖您试图在其中写入的所有内容。您应该改用defaultValue
属性
更新
清除文本是已知问题,但已标记为已修复。如果仍有问题,请尝试这很奇怪,不应该。。但是,您尝试过这个吗?添加@pavle answer
clearTextOnFocus
是iOS唯一的属性,目前在Android上不起作用(v0.56.0)。检查RN文档。