2001Yのプロフォール画像

2001Y@Y20010920T

process.browserでクラス名などのDOM操作(今回はダークモードの状態変更)をしようとしたところ、Hydrationエラーが。

Error: Hydration failed because the initial UI does not match what was rendered on the server.

状態管理をRecoilからuseStateに変更してもうまく動かず。でも原因は、process.browserにあったらしい。

useEffectに変更したらあっさり治った。

import { useEffect, useState } from 'react'
useEffect(() => {
	//DOM操作
}, []);

確かに公式にもuseEffectが推奨されてる

けどuseEffectimportを増やして関数作らなきゃいけないのが手間で、なおかつ"副作用"というのがなんとなく気持ち悪くてprocess.browserを使っていた。

でも、ちゃんとprocess.browseruseEffectの違い理解しないといけないのかも。