gpt4 book ai didi

reactjs - 为什么在我的 React Native 应用程序中按下每个键后键盘就会消失?

转载 作者:行者123 更新时间:2023-12-03 13:53:41 25 4
gpt4 key购买 nike

我的代码的主要部分如下,基本上,它允许用户选择一个国家/地区并输入他们的电话号码。一旦电话号码被识别为有效,图标的颜色就会更改。唯一的问题是,每次按下数字键盘上的按键时,键盘都会继续消失。这是一个例子:

enter image description here

这是电话登录屏幕的源代码。如果没有 onChangePhoneNumber={ (phone) => {this.updateInfo()} } 行,键盘不会在您键入时消失,但下一个图标不会更改为蓝色阴影输入了有效的号码。该函数会随着用户的输入而更新状态。

import React, { Component } from 'react';
import { View, Text, StyleSheet, TouchableOpacity, TextInput, Keyboard} from 'react-native';
import { Icon } from 'react-native-elements';

import KeyboardAccessory from 'react-native-sticky-keyboard-accessory';
import PhoneInput from 'react-native-phone-input';

export default class PhoneLogin extends Component {

constructor() {
super();

this.state = {
valid: "",
type: "",
value: "",
iconColor: "#D3D3D3",
};

this.updateInfo = this.updateInfo.bind(this);
}

updateInfo() {
this.setState({
valid: this.phone.isValidNumber(),
type: this.phone.getNumberType(),
value: this.phone.getValue().replace(/[- )(]/g,''),
});
}

render() {
return (
<View style={styles.container}>
<PhoneInput
ref={ref => {
this.phone = ref;
}}
style={{height: 50, borderColor:'#44c0b9', borderBottomWidth:2}}
onChangePhoneNumber={ (phone) => {this.updateInfo()} }
/>

<KeyboardAccessory backgroundColor="#fff">
<View style={{ alignItems: 'flex-end', padding:10 }}>
<Icon
raised
reverse
color={(this.state.valid) ? "#44c0b9" : "#D3D3D3"}
name='arrow-right'
type='font-awesome'
onPress={ Keyboard.dismiss()}
/>
</View>
</KeyboardAccessory>
</View>
);
}

}

最佳答案

react-native-phone-input 包有一个名为 focus 的函数,它基本上将焦点放在文本输入上。在我的代码 this.phone = ref; 中,因此当我运行 this.phone.focus() 时,文本输入处于焦点状态并且键盘显示。为了防止键盘消失,我所要做的就是添加以下功能。

componentDidMount(){
this.phone.focus()
}

关于reactjs - 为什么在我的 React Native 应用程序中按下每个键后键盘就会消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51921627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com