Reactの仕様の問題かと思われますので、詳しい方いたらお助けください。
現在、以下のライブラリを使って、RecaptchaのV2の導入をしようとしています。
https://www.npmjs.com/package/react-google-recaptcha
ある条件下で、useRecaptchaV2がtrueになったら表示するというロジックにしたいのですが、表示が不安定です。
useRecaptchaV2はComponentのstateで管理しています。
コードは以下です。
js
1(省略) 2 3// 実際に使いたいコード 4{ useRecaptchaV2 && <ReCAPTCHA 5 sitekey="自分のサイトキー")} 6 onChange={setV2Token} 7 /> } 8 9 10// 検証用コード 11{ 12 useRecaptchaV2 && <div>ああああああああ</div> 13} 14 15(省略)
▼ 現時点でわかっていること
- 検証用コードはuseRecaptchaV2が変わると正常にレンダリングされる
- useRecaptchaV2の条件を外せば実際に使いたいコードがレンダリングされる(RecaptchaV2のウィジェットが表示される)ので、RecaptchaV2のコンポーネントの使い方おそらくあっている
- useRecaptchaV2がtrueに切り替わったあとはリロードを挟まないと実際に使いたいコードが表示されない
- 上記もリロードを何回かしていると失敗する(レンダリングされない)※
- 特にエラーは出ていない
- 要素検証の結果、レンダリングされてないときも空のdivだけレンダリングされていることがわかった(レンダリングが中途半端?)
- ライブラリを使わない方法でもほとんど同じ結果になる。ただし※のような現象は起きなくなった(気がする)
reactの仕様などに詳しい方、RecaptchaV2をReactで使ったことある方、もし何かわかればヒントでも良いのでお願いします。
あなたの回答
tips
プレビュー