我一直在尝试在我的反应应用程序中实现 reCAPTCHA,但是当一切似乎都正常时,我检查了控制台并发现了这个警告:
Warning: ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly. This DOM node was rendered by 'reCAPTCHA'.
我当前的软件包版本:
`"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-google-recaptcha": "^0.4.1",`
试图通过降级来解决这个问题,react@0.14.0
但它没有帮助。
编辑:
代码:
onChange(response) {
console.log("Captcha value:", value);
this.setState({
'g-recaptcha-response': response
});
}
render() {
return (
<ReCAPTCHA
ref="recaptcha"
sitekey="6Le0bCoUAAAAAMnfIWvY2b8w0Z932kI6Iu_zu3p9"
onChange={this.onChange.bind(this)}
/>
);
}
和服务器端:
const recaptcha = require('express-recaptcha');
recaptcha.init(process.env.CAPTCHA_SITE_KEY,
process.env.CAPTCHA_SECRET);
module.exports = {
captchaVerify(req, res, next) {
recaptcha.verify(req, (err) => {
if (!err) {
res.status(200).send({ err: 'Approved' });
} else {
res.status(422).send({ err: 'Disapproved' })
}
})
}
}