Динамическое изменение цвета текста имеет специфические для платформы результаты на IOS и Android - PullRequest
0 голосов
/ 05 октября 2019

Я использую 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 + это изменение фокуса стирает все символы в поле ввода ...

...