【发布时间】:2020-11-10 18:51:57
【问题描述】:
我有一个我的用户要求的表单,我清楚地表明该表单是无效的。所以我打算弹出一个sweetalert 对话框,让他们知道他们需要仔细检查表格。我想我可以在验证中这样做,以便在提交尝试失败时提醒他们:
const validate = values => {
console.log(formik.isSubmitting); // always prints false
console.log(formik.isValidating); // always prints false
const errors = {};
if (!values.name) {
errors.name = 'Required';
}
if (Object.keys(errors).length > 0 && formik.isSubmitting) {
Swal.fire({
icon: 'error',
title: "Oops. . .",
text: "There are errors with the form. Please double check your options.",
footer: "<div>Problems: " + Object.keys(errors).join(', ') + "</div>"
})
}
return errors;
};
const formik = useFormik({
initialValues: {
name: item.name
},
enableReinitialize: true,
validate,
onSubmit: values => {
// also tried adding
formik.setSubmitting(true);
//do stuff
}
})
但isSubmitting / isValidating 总是错误的。我是否需要向validate 函数传递额外的道具才能访问这些值?
https://codesandbox.io/s/nervous-wescoff-cf2y1?file=/src/App.js
【问题讨论】:
-
如果你能在代码沙箱或类似的东西中重现问题,我保证我们能够解决它。
标签: javascript reactjs forms formik