我一直试图在我的react应用程序中实现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' })
}
})
}
}发布于 2017-07-25 23:02:22
您正在使用一个过时的react-google-recaptcha版本,这将导致反应14的错误/警告。尝试使用以下方法进行升级:
npm install --save react-google-recaptcha@0.9.6如果这样做不起作用,那么将版本更改为0.5.1,正是这个版本引入了对React 14的支持。
https://stackoverflow.com/questions/45314237
复制相似问题