Javascript Formik表单未提交和重新捕获错误消息不断弹出

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

我有一个我正在做的项目。在我添加React-reCAPTCHA之前,表单一直在工作,但是现在,表单没有提交,在选中reCAPTCHA并单击submit按钮后,它会继续显示错误消息

代码如下:

 

    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中提交会触发一系列事件。请阅读以下内容