読者です 読者をやめる 読者になる 読者になる

react.min.jsだとpropTypesは効かない

Reactでは、propsを使って値の受け渡しが出来るが、その値の型をチェックする仕組みが用意されている。
それがpropTypesである。

詳しくは下記を参照。

誤った型のデータが渡された場合、コンソールにエラーを出してくれる機能である。

だが、これがなぜか機能せずに詰まっていた。
結論から言うと、開発モード(development mode)ではなかったために、動作しなかった。

開発モード

Reactには「開発モード」というものがあり、propTypesは、開発モードでのみ動く。
そしてこれは知らなかったのだが、react.min.jsでは、開発モードはオフになっている。

今回、最新版のファイルを公式サイトからダウンロードし、それをhtmlで読み込んで使っていたのだが、その際、react.jsではなくreact.min.jsを読み込んでいた。
react.min.jsは単なる圧縮版、軽量版であり、機能は同じだと思ってそうしていたのだが、それが間違いだった。

なんでpropTypesが動かないんだと思い悩んでいたが、react.min.jsに代えてreact.jsを読み込むようにしたら、あっさり動いた。

npmではなくCDNやローカルファイルを読み込んでReactを使う場合、react.min.jsは本番環境でのみ使用し、普段の開発ではreact.jsを使ったほうがよい。