编辑:经过进一步检查,似乎这只发生在Android 6.0.1中.尝试使用6.0的几个设备,这不是一个问题.
我有一个非常简单的React Native代码片段,我想在TextInput中清除文本.它看起来有点像这样:
state = {
v: ""
};
_changeText = v => {
this.setState({ v });
};
clear = () => {
this.textInputRef.clear();
}
render() {
return (
<View style={styles.container}>
<TouchableOpacity onPress={this.clear}>
<Text> Clear </Text>
</TouchableOpacity>
<TextInput
ref={ref => this.textInputRef = ref}
value={this.state.v}
onChangeText={this._changeText}
/>
</View>
);
}
Run Code Online (Sandbox Code Playgroud)
现在我期望的行为是让文本输入保持焦点,并清除文本.这就是发生的事情 - 但是,当我开始在键盘上输入内容时,我之前清除的文本会重新出现在文本输入中.显然,这种文本的持久性并不是真正需要的.
有没有人遇到过这个问题?它是RN错误还是有任何方法可以避免这种行为而不需要模糊键盘?
这里有一个小片段来澄清我的意思:https://snack.expo.io/H1S9b5Mpe.
如果您开始输入,请按清除,然后继续输入,之前显示的文本将出现在新键入的文本之前.