2017-05-29 2 views
3

J'essaie d'obtenir la réponse recaptcha afin que je puisse le transmettre via redux-form.
ont essayé les 2 méthodes ci-dessous ...Comment ajouter google recaptcha dans create rea?

Tentative 1:
Spécification rappel dans <head>.

index.html:

<script src='https://www.google.com/recaptcha/api.js?onload=callback&render=explicit'></script> 

Le problème ici est que le rappel est une portée mondiale, mais je dois y avoir accès dans React composants.

Tentative 2:
Spécification du rappel dans DOM.

Composant: handleRecaptcha (resp)

handleRecaptcha(resp) { 
    console.log(resp); 
} 

Composant: render():

<div className="g-recaptcha" data-callback={this.handleRecaptcha.bind(this)} data-sitekey="***"></div> 

index.html:

<script src='https://www.google.com/recaptcha/api.js'></script> 

Je reçois le message ReCAPTCHA couldn't find user-provided function: function() { [native code] } après avoir soumis le recaptcha. Probablement un problème de portée aussi. J'essaie d'éviter d'utiliser une autre bibliothèque, car je pense que c'est un problème plutôt trivial.
Quelqu'un aurait-il une idée de la façon de s'y prendre?

Tout ce dont j'ai besoin est d'obtenir l'instance widget, et faites grecaptcha.getResponse(widget) pour obtenir la réponse. API ref

Répondre

2

Utilisez react-recaptcha

import Recaptcha from 'react-recaptcha' 

<Recaptcha 
    sitekey="xxxxxxxxxxxxxxxxxxxx" 
    render="explicit" 
    verifyCallback={verifyCallback} 
    onloadCallback={callback} 
/> 
+0

Ya celui-ci peut aussi être une alternative. Je l'utilise maintenant –