Чтобы получить такое поведение, вам нужно создать свой собственный компонент, который управляет этим.Используя компонент высшего порядка withFormsy
, вы получите доступ к функции isValid
.
Это всего лишь пример, но он должен получить то, что вы хотите
import { withFormsy } from 'formsy-react';
const MyInput = withFormsy(({ onValidUpdate, ...otherProps }) => {
const onBlur = (event) => {
if (otherProps.isValid()) {
onValidUpdate()
}
}
return (
<Form.Input {...otherProps} onBlur={onBlur} />
)
})
И затем используйте компонент как
const onValidUpdate = () => console.log('this will only be called when valid')
<MyInput
name="email"
label="Email"
validations="isEmail"
validationErrors={{ isEmail: 'Email not valid' }}
errorLabel={errorLabel}
onValidUpdate={onValidUpdate}
/>