Javascript Formik表单未提交和重新捕获错误消息不断弹出
我有一个我正在做的项目。在我添加React-reCAPTCHA之前,表单一直在工作,但是现在,表单没有提交,在选中reCAPTCHA并单击submit按钮后,它会继续显示错误消息 代码如下:Javascript Formik表单未提交和重新捕获错误消息不断弹出,javascript,reactjs,recaptcha,informix,verification,Javascript,Reactjs,Recaptcha,Informix,Verification,我有一个我正在做的项目。在我添加React-reCAPTCHA之前,表单一直在工作,但是现在,表单没有提交,在选中reCAPTCHA并单击submit按钮后,它会继续显示错误消息 代码如下: const validationSchema = yup.object().shape({ name: yup.string().required('Your name is required.'), email: yup.string().email('Ple
const validationSchema = yup.object().shape({
name: yup.string().required('Your name is required.'),
email: yup.string().email('Please enter a valid email address.').required('Email is required'),
comment: yup.string().required('No comment entered yet.'),
recaptcha: yup.string().required('Confirm that you are human.'),
});
const {
'article-comment-name': name,
'article-comment-email': email,
'article-comment-comment': commentInput,
'article-comment-submit': submit,
} = keyBy(commentForm?.form?.inputs, KEY);
return (
<div>
<p className="text text-success text-center">{msg && <p>Your comment has been added.</p>}</p>
<Formik
initialValues={formInitialValues}
onSubmit={(comment, { resetForm }) => {
handleVerify();
submitComment(comment);
resetForm();
commentCreated();
}}
validationSchema={validationSchema}
>
{({ values: comment, handleChange, handleSubmit, errors, touched }) => (
<form id="add-comment" className="add-comment" onSubmit={handleSubmit}>
<fieldset>
<div className="row">
<div className="col-md-6">
<label>
{name.label}:{' '}
<span className="text-danger">
{errors.name && touched.name && errors.name}
</span>
</label>
<input type="text" name="name" value={comment.name} onChange={handleChange} />
</div>
<div className="col-md-6">
<label>
{email.label}:{' '}
<span className="text-danger">
{errors.email && touched.email && errors.email}
</span>
</label>
<input type="text" name="email" value={comment.email} onChange={handleChange} />
</div>
</div>
<div>
<label>
{commentInput.label}:{' '}
<span className="text-danger">
{errors.comment && touched.comment && errors.comment}
</span>
</label>
<textarea
name="comment"
cols={40}
rows={3}
value={comment.comment}
onChange={handleChange}
></textarea>
</div>
<Recaptcha
sitekey="mysitekey"
verifyCallback={handleVerify}
render="explicit"
/>
<span className="text-danger">{verify && touched.recaptcha && errors.recaptcha}</span>
</fieldset>
<br />
<button type="submit" className="theme-btn">
<span>{submit.label}</span>
</button>
<div className="clearfix"></div>
</form>
)}
</Formik>
</div>
const validationSchema=yup.object().shape({
名称:yup.string().required('您的名字是必需的'),
电子邮件:yup.string().email('请输入有效的电子邮件地址')。必需('需要电子邮件'),
注释:yup.string().required('尚未输入注释'),
recaptcha:yup.string().required('确认您是人类'),
});
常数{
“文章注释名称”:名称,
“文章评论电子邮件”:电子邮件,
“文章评论”:评论输入,
“文章评论提交”:提交,
}=keyBy(commentForm?.form?.inputs,KEY);
返回(
{msg&&您的评论已添加。
}
{
handleVerify();
提交建议(评论);
resetForm();
注释创建();
}}
validationSchema={validationSchema}
>
{({值:comment、handleChange、handleSubmit、errors、toucted})=>(
{name.label}:{'}
{errors.name&&touch.name&&errors.name}
{email.label}:{'}
{errors.email&&touch.email&&errors.email}
{commentInput.label}:{'}
{errors.comment&&touch.comment&&errors.comment}
{verify&&toucted.recaptcha&&errors.recaptcha}
{submit.label}
)}
我已经检查了回调,它在这方面工作正常。主要问题是表单没有提交。它一直显示这样的消息:确认您是人类。
可能是什么问题?在Formik设置中,值或错误都与
名称
属性绑定。元素的名称
属性应与值
的其中一个键匹配。您有recaptcha
的validationSchema,但它与recaptcha
组件无关
<Recaptcha
sitekey="mysitekey"
verifyCallback={handleVerify}
render="explicit"
/>
在formik中提交会触发一系列事件。请阅读以下内容