【问题标题】:onChange event not working after window.reacptcha.reset() in recaptcha v2 using react-google-recaptcha npm package - [recaptcha just keeps on loading]在使用 react-google-recaptcha npm 包的 recaptcha v2 中的 window.reacptcha.reset() 之后 onChange 事件不起作用 - [recaptcha 只是继续加载]
【发布时间】:2021-09-10 08:06:58
【问题描述】:

我在网站的表单页面上使用 npm react-google-recaptcha 包来实现 google recaptcha v2 复选框

<ReCAPTCHA sitekey={KEY} onChange={this.captchaOnChange} />

验证验证码后,我会触发 captchaOnChange 函数来记录来自 google API 的响应并将触发器值设置为 true,这将在我的代码中进一步使用(我尝试了以下代码的多个版本,其中一个只有异步,一个没有异步,一个有异步和等待)

    captchaOnChange = async (value) => {
    this.setState({
      captchaValue: value,
      clicked: true,
    });
  };

一旦提交表单,我正在使用

window.grecaptcha.reset()

重置验证码

现在的问题是,当用户第一次点击验证码时,它的工作正常,并且立即在验证码上看到绿色勾号,但是在提交表单后,验证码被重置并且用户想要再次提交表单并点击recaptcha 没有 没有绿色勾号,它的 持续加载 就像它被困在某个循环中一样,而且我正在检查检查元素的网络选项卡,没有向任何 recaptcha 发送请求加载时的 api。

所以我怀疑在使用 recaptcha.reset() 之后 onChange 事件是否有问题,我也发现一些人在互联网上报告了类似的问题,但我没有确定它是否有任何问题或我们的实施问题。

请帮忙!!

【问题讨论】:

  • 另外我想补充一点,我突然遇到了这个问题,两天前它运行良好,它曾经显示过这个错误“recaptcha__en.js:120 uncaught (in promise) rangeerror:超出最大调用堆栈大小”,但此时加载需要很长时间,但最后有绿色勾号,但现在它只是不断加载,没有错误也没有其他任何东西

标签: javascript reactjs recaptcha onchange react-google-recaptcha


【解决方案1】:

与参考一起使用

import ReCAPTCHA from "react-google-recaptcha";
 
 
const ReCAPTCHAForm = (props) => {
  const recaptchaRef = React.useRef();
 
  const onSubmitWithReCAPTCHA = async () => {
    const token = await recaptchaRef.current.executeAsync();
 
    // apply to form data

    // reset the captcha 
    recaptchaRef.current.reset()
  }
 
  return (
    <form onSubmit={onSubmitWithReCAPTCHA}>
      <ReCAPTCHA
        ref={recaptchaRef}
        size="invisible"
        sitekey="Your client site key"
      />
    </form>
  )
 
}
 
ReactDOM.render(
  <ReCAPTCHAForm />,
  document.body
);

更多信息package docs

【讨论】:

  • 您能否解释一下使用会如何产生差异或为什么我可能会遇到这个问题
  • 我没有足够的信息来说明您为什么会遇到这个问题,我认为您的组件正在重新渲染多次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2015-10-19
  • 1970-01-01
相关资源
最近更新 更多