javascript - Android 上 TextInput 的奇怪行为 react native

标签 javascript android react-native textinput

我有一个注册表单,我想在用户聚焦它并弹出键盘时清除文本输入。

这种行为在 iOS 上工作得很好,但是在 android 上,首先是 clearTextOnFocus 不起作用,其次我无法在地址文本输入中输入任何内容,我想知道这里有什么问题,因为这在 iOS 上工作得很好.

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>


    );
}
}

在这方面的任何帮助都会很棒。

最佳答案

问题可能是您设置了 TextInputvalue 属性。如果设置了 value,它将覆盖您尝试在其中写入的所有内容。您应该改用 defaultValue 属性。

更新 清除文本是已知问题,但已标记为已修复。如果您仍然有问题,请尝试 https://github.com/nikolaiwarner/react-native-text-input-reset

关于javascript - Android 上 TextInput 的奇怪行为 react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51908523/

相关文章:

android - Red5 和安卓。串流音频

javascript - 安装 react 原生 Firebase 存储后出现错误

javascript - React-native:重新加载应用程序时,用户必须保持登录状态

android - list 合并 - Android studio 0.8.1 升级构建错误 : property 'manifestFile' does not exist

javascript - 如何在 expo 中以编程方式启用/禁用 textinput?

Javascript自动宽度检测然后向其添加两个像素

javascript - Jest Enzyme setState of memoryRouter dependent

javascript - 使用 onload 附加图像

javascript - Python JSON 到 JavaScript

android - Gallery OnActivityResult 在 TabActivity 中不起作用