【发布时间】:2018-05-31 11:07:51
【问题描述】:
Expo SDK v27.0.0 基于 React-Native 0.55
我有一个值,我只想要数值,所以我使用 onChangeText 过滤输入。在 Android 上,您会看到非数字值,但随后会被删除,但在 IOS 上,所有字符都会显示,直到按下另一个数字。代码如下:-
state = {
appCode: ""
};
render() {
console.log(this.state.appCode);
return (
<View style={styles.container}>
<TextInput
label={"App Code"}
placeholder={"App Code"}
keyboardType="phone-pad"
maxLength={6}
onChangeText={text => {
this.setState({ appCode: text.replace(/\D/g, "") });
}}
value={this.state.appCode}
/>
</View>
);
}
我可以在控制台上看到 appCode 值正在正确更新,但 IOS 屏幕上的值没有跟随变量。 如果我输入
1*#+
显示在 IOS 屏幕上(控制台显示 this.state.appCode 每次按键都为 1)但随后按下,例如,7 并且屏幕上显示的值更新为
17
所有文档都表明这是过滤输入的正确方法,在 Android 上它可以工作,但在 IOS 上不行
【问题讨论】:
标签: ios react-native expo