reCAPTCHA:不要访问 .getDOMNode()
reCAPTCHA: Do not access .getDOMNode()
我一直在尝试将 reCAPTCHA 实施到我的 React 应用程序中,但是当一切最终看起来都正常时,我检查了控制台并发现了这个警告:
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' })
}
})
}
}
您使用的是 react-google-recaptcha
的过时版本,这会导致 an error/warning with React 14。尝试升级:
npm install --save react-google-recaptcha@0.9.6
如果这不起作用,请将版本更改为 0.5.1
,该版本引入了对 React 14 的支持。
我一直在尝试将 reCAPTCHA 实施到我的 React 应用程序中,但是当一切最终看起来都正常时,我检查了控制台并发现了这个警告:
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' })
}
})
}
}
您使用的是 react-google-recaptcha
的过时版本,这会导致 an error/warning with React 14。尝试升级:
npm install --save react-google-recaptcha@0.9.6
如果这不起作用,请将版本更改为 0.5.1
,该版本引入了对 React 14 的支持。