Qraft(クラフト) 資格・学習クイズアプリ

React入門 練習問題 55:Reactフックの使用と基本的なエラー解決

次のReactアプリケーションでエラーが表示されました。コードを見て、最も考えられる原因は何ですか?

**エラーメッセージ:**
```
Error: React Hook "useState" is not defined. Did you forget to import it from "react"?
```

**コード:**
```jsx
import React from 'react';

function UserProfile() {
const [name, setName] = useState('Guest');

return (
<div>
<h2>{name}</h2>
<button onClick={() => setName('User')}>Update</button>
</div>
);
}
```

  1. useStateがインポートされていない
  2. nameの初期値が正しくない
  3. setNameの使い方が間違っている
  4. returnステートメントの構文エラー
  5. useStateの呼び出し位置がコンポーネント関数の外側にある

Qraftユーザーの成績:正答率 100%(13/13回正解)

正解と解説を見る
正解:useStateがインポートされていない

このエラーは、useStateフックを使用しているにもかかわらずReactからインポートしていないことが原因です。

【正解の理由】
エラーメッセージ「useStateは定義されていません。reactからインポートし忘れていませんか?」は、まさにインポート漏れを示しています。1行目を`import React, { useState } from 'react';`に修正すれば解決します。

【不正解の理由】
• nameの初期値が正しくない:useStateには文字列・数値など任意の型を初期値として渡せるため、'Guest'という初期値自体は問題ない
• setNameの使い方が間違っている:setName('User')は更新関数に新しい値を渡す正しい呼び出し方であり、問題ない
• returnステートメントの構文エラー:JSXの記述は正しく、return文の構文にエラーはない
• useStateの呼び出し位置がコンポーネント関数の外側にある:コード上useStateはUserProfile関数の内側で呼ばれており、位置の問題ではない

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)