Личное предложение:
1 - добавить состояние errors: []
2 - при отправке, проверьте значения required
и заполните errors
пользовательскими данными; пример:
onSubmit() {
let errors = []
let { firstName, lastName } = this.state
if (firstName === ''){
errors << 'firstName'
}
if (lastName === ''){
errors << 'lastName'
}
if (errors.length) {
this.setState({ errors });
return;
}
// API CALL
}
3 - в вашей функции рендеринга добавьте пользовательский класс для TextInput
s
render(){
return (
<TextInput style={{ borderColor: this.state.errors.include('firstName') ? 'red' : 'transparent' }} />
)
}
Теперь, конечно, я бы предложил перенести стили в классы и использовать классы, но этот пример является хорошим способом для их реализации.
EDIT
Я забыл упомянуть, что вам нужно setState({ errors: [] })
при редактировании любого значения в текстовом поле, чтобы сбросить границы на ноль.