我在网站的表单页面上使用 npm react-google-recaptcha 包来实现 google recaptcha v2 复选框
<ReCAPTCHA sitekey={KEY} onChange={this.captchaOnChange} />
一旦验证了验证码,我就会触发 captchaOnChange 函数来记录来自谷歌 API 的响应并将触发器值设置为 true,这将在我的代码中进一步使用(我尝试了以下代码的多个版本,一个只有异步,一个没有异步和一个异步和等待)
captchaOnChange = async (value) => {
this.setState({
captchaValue: value,
clicked: true,
});
};
一旦提交表格,我正在使用
window.grecaptcha.reset()
重置recaptcha
现在的问题是,当用户第一次单击recaptcha 时,它工作正常,并且立即在recaptcha 上可见绿色勾号,但是在重置验证码并且用户想要再次提交表单并单击recaptcha 时提交表单后没有绿色勾号,它的加载持续不断,就像它被困在某个循环中一样,而且我正在检查检查元素的网络选项卡,在加载时没有向任何 recaptcha api 发送请求。
所以我怀疑在使用 recaptcha.reset()后onChange事件是否存在问题,我也发现一些人在互联网上报告了类似的问题,但我不确定它是否有任何问题或我们的实施问题。
请帮忙!!