質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

231閲覧

Reactの条件レンダリングに失敗する

anpnt

総合スコア29

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/04/20 20:19

編集2021/04/20 20:22

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で使ったことある方、もし何かわかればヒントでも良いのでお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問