2017-07-25 27 views
0

我一直在试图使用reCAPTCHA到我的反应,应用程序,但时候,一切似乎终于确定我检查控制台,发现这样的警告:验证码:不要访问.getDOMNode()

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",` 

试图通过降级到[email protected]解决这个问题,但它并没有帮助。

编辑:

代码:

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' }) 
     } 
    }) 
    } 
} 
+0

请发表您的代码的发布。 –

+0

@DannyDelott在这里!/\ – LiJonas

回答

3

您正在使用的react-google-recaptcha过时的版本,从而导致an error/warning with React 14。试着用升级:

npm install --save react-google[email protected] 

如果还是不行,请更改版本0.5.1,那就是推出了支持阵营14

+0

谢谢,解决了我的问题! 但现在我得到另一个: '未捕获的错误:ReCAPTCHA占位符元素必须是空的。我发现它表示这个库是twise加载的,但我只使用'从react-google-recaptcha';'语句导入ReCAPTCHA。 – LiJonas

+0

您现在使用哪个版本的“react-google-recaptcha”? –

+1

将它从'0.5.0'更新为'0.5.1'修复了这个问题。谢谢,费边! – LiJonas