← クエスト一覧
クエスト8:フォームと制御コンポーネント
スライド
1
/
1
とばして問題へ
💻 コード例
実行結果
← 戻る
次へ →
クエストを始める
← クエスト一覧
⚛️ React基礎
/
Quest 8
/ 10
クエスト8:フォームと制御コンポーネント
応用
+10 XP
📖 説明を見る
🏠
📖 課題
💻 コード
結果
今回の課題
名前と年齢を入力して「登録」ボタンを押すとアラートが出るフォームを完成させよう!
📖 解説を見る
📝 React でフォームを管理する
React では
制御コンポーネント
方式でフォームを管理します。
state と input を同期させることで常に最新の入力値を把握できます。
ヒントを見る
onChange={(e) => setName(e.target.value)} と onChange={(e) => setAge(e.target.value)} を使おう
🤖 AIに聞く
📄 見本
答えを見る
「答えを見る」を押すと、お手本のプレビューとコードが出ます。
💻 コードエディタ
index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>React</title> <script src="https://unpkg.com/react@18/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script> </head> <body> <div id="root"></div> <script type="text/babel"> const { useState } = React; function Form() { const [name, setName] = useState(''); const [age, setAge] = useState(''); function handleSubmit(e) { e.preventDefault(); alert(`${name}(${age}歳)を登録しました!`); } return ( <form onSubmit={handleSubmit}> <div> <label>名前:</label> <input type="text" value={name} onChange={/* ここを書こう */} placeholder="名前を入力" /> </div> <div> <label>年齢:</label> <input type="number" value={age} onChange={/* ここを書こう */} placeholder="年齢を入力" /> </div> <button type="submit">登録</button> </form> ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<Form />); </script> </body> </html>
コードを実行
さいしょから
あなたの出力
正解! +10 XP
正解!見本と同じになりました。
練習問題へ進む →
クリアをXでシェア
ヒント
実行する
次へ →
🏠 ホームへ
れんしゅうもんだい
☑ 0 / 0 正解
レッスンに戻る
全問正解でクエストクリア!
次のクエスト →
コピーしました!
×
先にヒントを見ますか?
ヒントを読むと、自分の力で解けるかもしれません。
ヒントを見る
それでも答えを見る