【react】componentDidmountの中で要素のid・クラス名を取得する

  • 2021年5月18日
  • 2021年5月18日
  • React

componentDidmountの中ではgetElementsByIdやgetElementsByClassNameで指定した

cssのスタイルはそのままではいじれない。

ページの組み立て速度は、render > componentdidmountなのだがなぜかcomponentdidmountの

getElementsByIdを先に認識してしまう。当たり前だが無い物を読もうとしているのでこれではクラッシュする。

正しく読み込むには、setTimeOutを使ってgetElementsByIdやgetElementsByClassNameのスタイルを

読み込むタイミングを遅らせる必要がある。

componentDidmountの中で以下のような処理を追加して先読みを防止する。

componentDidMount() {
 let text-box = document.getElementsById("text-box");
  setTimeout(() => {
    text-box[0].style.color = "#fff";
  }, 200)
}

一般的にcomponentDidMountはコンストラクタ→renderの順に読み込んで一番最後に読まれるのだがこのタイミングでなぜ

getElementsByIdの干渉が割り込むかは分からず。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG