Это можно сделать с помощью параметра ant design validateStatus .Вы можете динамически изменять статусы из заданных наборов, т. Е. «Success», «warning», «error», «validating».
validateStatus: проверять состояние компонентов формы, которые могут быть «success», 'warning', 'error', 'validating'.
Вам нужны функции, одна onBlur
и другая onFocus
.FormItem
можно записать в виде:
<FormItem
validateStatus={this.state.showError && userNameError ? "error" : ""}
help={
this.state.showError && userNameError
? "Valid E-mail required!"
: ""
}
>
{getFieldDecorator("userName", {
validateTrigger: "onBlur",
rules: [
{ type: "email", message: "Valid E-mail required!" },
{ required: true, message: "Please input your username!" }
]
})(
<Input
placeholder="Email"
onBlur={this.handleBlur}
onFocus={this.handleFocus}
/>
)}
</FormItem>
И два метода можно записать в виде:
handleBlur = e => {
this.setState({ showError: true });
};
handleFocus = e => {
this.setState({ showError: false });
};
Рабочая демонстрация на codesandbox.io .