Я использую nativebase , но я не думаю, что это проблема, связанная с nativebase. У меня есть два поля ввода текста (называемые Input in nativebase), такие как Имя пользователя и Пароль. После отправки данных в бэкэнд и получения ответа, я установил значение error
в значение true. Я показываю сообщение об ошибке и, кроме того, я хочу раскрасить ввод, сделанный пользователем в первом поле ввода, красным, если пользователь не добавляет новые символы:
<Input
style={error ? { color: 'red'} : { color: 'black' }}
placeholder="Enter your username"
placeholderTextColor={theme.brandGrey}
onChangeText={s => this.setState({ fk: s, error: false })}
/>
Однако у меня есть два различных поведенияи то, и другое не то, что я хочу.
На Android:
После отправки данных ошибка отображается в основном, но поле ввода пусто. Когда я начинаю печатать в поле ввода, на долю секунды я вижу, что первый символ зарезервирован как красный, но затем становится черным.
В IOS:
Послепри отправке данных ошибка отображается правильно, но текст поля ввода отображается не красным, а черным цветом.
[РЕДАКТИРОВАТЬ]
После повторного рассмотрения этой проблемыЯ думаю, что на самом деле есть две разные независимые проблемы здесь. Во-первых, я не могу раскрасить шрифт на IOS, но на Android, который, как мне кажется, связан с тем шрифтом, который я использую, поскольку я также не могу установить fontWeight на IOS.
Другая проблема заключается в том, что каким-то образомизменение фокуса на Android + это изменение фокуса стирает все символы в поле ввода ...