Sen*_*Sen 6 javascript reactjs formik
如果提交时验证失败,我需要显示附加错误消息。如果更改/模糊时验证失败,则不应显示此错误消息。看起来没有办法判断提交时是否发生验证错误,因为验证函数是在更改、模糊和提交时调用的。可以禁用更改/模糊时发生的验证,以便我知道提交时发生的错误,但我也需要在更改和模糊时进行验证。
这是我所做的:
<Formik
validate={values => {
const errors = {};
if(!values.reason){
errors.reason = 'This is required';
}
return errors;
}}
>
{{errors, status, setStatus, validateForm} => (
<Form>
{status && <div>There was a problem submitting the form</div>}
<Field type="text" name="reason"/>
<ErrorMessage name="reason" />
<button type"submit" onClick={() => {
validateForm().then(errors => {
if(Object.keys(errors).length > 0){
setStatus('error');
}
});
}}>
Submit
</button>
</Form>
)}
</Formik>
Run Code Online (Sandbox Code Playgroud)
这是可行的,但是当单击提交按钮时,验证函数会运行两次。有一个更好的方法吗?
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |