一旦用户单击它,我正在尝试提升 reCAPTCHA 的值(使用react-google-recaptcha )。我可以轻松获取该值,但无法将其发送到父组件。它抛出:
未捕获(承诺):空
const RecaptchaInput = ({ name, isValid, errorMessage, onChange }) => {
const recaptchaReference = useRef(null);
const handleChange = () => {
let recaptchaValue = recaptchaReference.current.getValue();
console.log('recaptchaValue',recaptchaValue) //prompts the value
onChange({ value: recaptchaValue, name: `recaptcha` });
};
return <div>
<label htmlFor={name}>
<Recaptcha sitekey={process.env.GATSBY_SITE_RECAPTCHA_KEY}
ref={recaptchaReference}
onChange={handleChange} />
</label>
{!isValid && <small>{errorMessage}</small>}
</div>;
};
该值已在控制台中正确提示,但我无法发送它onChange
功能。既不是像{value: 'hello', name: 'recaptcha'}
.
我的onChange
函数将参数解构为name
and value
,这就是我举起这样一个对象的原因。
据我所知,它似乎与 Google 的 Recaptcha 的回调有关,但我不知道如何在 Gatsby/React 应用程序中绕过它。