首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >reCAPTCHA:不要访问.getDOMNode()

reCAPTCHA:不要访问.getDOMNode()
EN

Stack Overflow用户
提问于 2017-07-25 22:01:09
回答 1查看 88关注 0票数 0

我一直试图在我的react应用程序中实现reCAPTCHA,但是当一切看起来都好的时候,我检查了控制台,发现了这样的警告:

Warning: ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly. This DOM node was rendered by 'reCAPTCHA'.

我目前版本的软件包:

代码语言:javascript
复制
`"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-google-recaptcha": "^0.4.1",`

试图通过降级到react@0.14.0来解决这个问题,但是没有帮助。

编辑:

代码:

代码语言:javascript
复制
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)}
    />
 );
}

和服务器端:

代码语言:javascript
复制
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' })
      }
    })
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 23:02:22

您正在使用一个过时的react-google-recaptcha版本,这将导致反应14的错误/警告。尝试使用以下方法进行升级:

代码语言:javascript
复制
npm install --save react-google-recaptcha@0.9.6

如果这样做不起作用,那么将版本更改为0.5.1,正是这个版本引入了对React 14的支持。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45314237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档