2023-10-05
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の干渉が割り込むかは分からず。