Вы можете установить error
опору Item
следующим образом:
<Item error={this.state.emailError}>
<Input placeholder='Email'
autoCapitalize="none"
onChangeText={this.props.changeEmailValue}
/>
</Item>
В конструкторе оставьте emailError
как false
.Затем, когда вы проверяете, является ли адрес электронной почты действительным или нет в handleSubmit
, вы можете установить его в значение true, если хотите разрешить ошибку следующим образом:
this.setState({ emailError: true });
ОБНОВЛЕНИЕ:
У меня нет опыта работы с Redux, поэтому я не смогу дать вам лучшее решение здесь.Однако в case LOGIN:
вашего редуктора будет работать только один из блоков if-else
, поэтому здесь будет обнаружен только один тип ошибок.Вы можете попробовать что-то вроде:
case LOGIN:
let emailError = false;
let passwordError = false;
if (action.payload.email === '' || action.payload.email === undefined)
emailError = true
if (action.payload.password === '' || action.payload.password === undefined)
passwordError = true
if ( emailError || passwordError ) {
return {
...state,
emailError: emailError,
passwordError: passwordError
}
}
else {
return {
...state,
email: action.payload.email,
password: action.payload.password
}
}
Опять же, я не уверен, что / насколько это правильно, но это может, по крайней мере, дать вам представление.