TextInput очищает текст, когда значение secureTextEntry равно true
Здравствуйте, я использую TextInput реагировать родной, и есть опция глаз для просмотра или скрытия пароля. Когда я устанавливаю для secureTextEntry значение true и вводю другой символ в поле ввода, он очищает все предыдущие данные и просто вводит символ.
Вот мой код:
<TextInput
ref={ref => this._password = ref}
style={[style.greyTextStyle, style.textinputStyle]}
placeholder={strings.PASSWORD}
secureTextEntry={this.state.securepass}
placeholderTextColor={color.GREY_TEXT_COLOR}
underlineColorAndroid='transparent'
value={this.state.password}
onChangeText={(text) => { this.setState({ password: text }) }} />
Нажав на глаз, я переключаю безопасный ввод текста.
showPassword() {
this.setState({ securepass: !this.state.securepass });
if (this.state.securepass == false) {
this.setState({ passIcon: 'eye' })
} else {
this.setState({ passIcon: 'eye-off' })
}
}
Пожалуйста помоги.
2 ответа
Я думаю, что это родное поведение iOS. Пожалуйста, проверьте этот https://github.com/facebook/react-native/issues/9148 и этот https://github.com/facebook/react-native/issues/12939. Вы можете попробовать сохранить значение перед переключением показать / скрыть пароль и установить снова после этого.
Установка свойства clearTextOnFocus
ложь в вашем textInput может помочь
<TextInput
clearTextOnFocus={false}
ref={ref => this._password = ref}
style={[style.greyTextStyle, style.textinputStyle]}
placeholder={strings.PASSWORD}
secureTextEntry={this.state.securepass}
placeholderTextColor={color.GREY_TEXT_COLOR}
underlineColorAndroid='transparent'
value={this.state.password}
onChangeText={(text) => { this.setState({ password: text }) }} />