React Native: e.nativeEvent.key == «Enter» не работает - PullRequest
0 голосов
/ 28 ноября 2018

этот вопрос очень похож на этот , однако по какой-то причине каждый ключ работает, кроме клавиши возврата (клавиша ввода).я хочу перейти на следующую страницу, если пароль правильный.любая помощь будет очень признателен

// Код

        <TextInput
                style={styles.txtfield}
                placeholder="Password"
                placeholderTextColor = 'rgba(249, 129, 37, 1)'
                secureTextEntry={true}
                onChangeText={ password => this.setState({ password })}
                keyboardType="default"
                returnKeyType="next"                        
                onKeyPress={ (event) => {
                    if(event.nativeEvent.key == "Enter"){
                        alert(event.nativeEvent.key) // doesn't output anything nor execute the signin function
                        // this.signIn();
                    } 
                    else {
                        alert('Something else Pressed') // show a valid alert with the key info
                    }
                }}
            />

1 Ответ

0 голосов
/ 28 ноября 2018

вы получите событие onPress для Ввод ключа только при наличии многострочного TextInput.

Для однострочного TextInput вы будетеget 'Enter' или 'Submit' событие нажатия клавиши в методе onSubmitEditing .

  <TextInput
            style={styles.txtfield}
            placeholder="Password"
            placeholderTextColor = 'rgba(249, 129, 37, 1)'
            secureTextEntry={true}
            onChangeText={ password => this.setState({ password })}
            keyboardType="default"
            returnKeyType="next"
            onSubmitEditing={()=>{
                alert('on submit') // called only when multiline is false
            }}                        
            onKeyPress={ (event) => {
                if(event.nativeEvent.key == "Enter"){
                    alert(event.nativeEvent.key) //called when multiline is true
                    // this.signIn();
                } 
                else {
                    alert('Something else Pressed') 
                }
            }}
        />
...