SAMURAI TERAKOYA

react has no exported member { hooksの関数名 } と表示された時の対処法

React.js

今回は、React × Next.js × TypeScriptを用いた開発を行う上で発生したエラーの解決法(対処法)について、ご紹介します。

 発生したエラーとその背景

フロントに関する作業用のブランチをローカルにクローンし、作業を始めようとしたら使いたいhooks(関数)が読み込めませんでした。

importしようとしたuseState, useEffectの下に赤線が引かれており、カーソルをあてると以下のようなエラーが表示されました。

react has no exported member useState,useEffect

原因

@types/node(*1)が導入されている環境で、@types/reactをインストールしていなかったから。

JavaScriptではなく、TypeScriptを使用している現場では、@types/nodeを導入している可能性が高いため、慣れていないと躓きやすい部分です。。

 

*1  Node.jsをTypeScriptで使用する際に、Node.js上の型に関する情報を提供する(型の補完をしてくれる)ライブラリになってます。

@types/react : 詳細

 

対処法

pakage.jsonもしくは、yarn.lockを確認し、@types/reactがインストールされているか確認してください。

もし、インストールされていない場合は、以下のコマンドでインストールをしましょう。

npm install @types/react 

もしくは

yarn add @types/react

npmでインストールした例にはなりますが、以下のようにエラーなくインストールが出来ればOKです。

@types/react_npm_install

また、インストールが終わったらエラーが解消されているか確認してみましょう。

もし改善されない場合

reactをインストール済みか確認しましょう。

reactライブラリがインストール済みか確認

バージョンは、@types/reactとあっているのがベストです。

もし、インストールされていない場合は、

npm i

もしくは

npm i react

を実行してみましょう。

また、使用しているエディタ(VSCodeなど)の再起動もお試しください。

まとめ

  • react has no exported member { hooksの関数名 }というエラーが発生する原因は、適切なライブラリがインストールされていないから
  • 対処法は、@types/reactのインストール。
  • もし、@types/reactをインストールしても改善されない場合は、reactの再インストールとエディタの再起動を試みる。

 

コメント

タイトルとURLをコピーしました