Master Course

本ページはお試し版です。コース全編をご希望の方はこちらからどうぞ。

SECTION 2: TypeScriptでReactアプリを開発しよう その1

  • 1このセクションで学ぶこと
  • 2バックエンドの準備
  • 3開発ツールのインストール
  • 4ReactコンポーネントをTypeScriptで書く
  • 5アプリの構成を確認する
  • 6イベントとfunctionに型をつける その1
  • 7イベントとfunctionに型をつける その2
  • 8複雑な構造のデータに型をつける
  • 9フォームの入力文字を消す
  • 10画像とCSSを追加する
  • 11ローディングを追加する
  • 12childrenに型をつける
  • 13action属性の利用(Reactバージョン19)
  • 14useActionStateの導入(Reactバージョン19)

Section 2: TypeScriptでReactアプリを開発しよう その1

  • 1このセクションで学ぶこと
  • 2バックエンドの準備
  • 3開発ツールのインストール
  • 4ReactコンポーネントをTypeScriptで書く
  • 5アプリの構成を確認する
  • 6イベントとfunctionに型をつける その1
  • 7イベントとfunctionに型をつける その2
  • 8複雑な構造のデータに型をつける
  • 9フォームの入力文字を消す
  • 10画像とCSSを追加する
  • 11ローディングを追加する
  • 12childrenに型をつける
  • 13action属性の利用(Reactバージョン19)
  • 14useActionStateの導入(Reactバージョン19)

フォームの入力文字を消す

動画のテキスト【フォームの入力文字を消す

今のところ、検索結果が表示された後でもフォームには入力した文字が残っています。

clear-form-1.jpg

レシピデータが取得できたときにこれを消したいので、次のコードを追加しましょう。データ取得後にmealNamstateを更新しています。

// App.tsx ... img: strMealThumb, source: strYoutube, area: strArea, category: strCategory }) setMealName("") // 追加 } return ( ...

フォームをクリアするには、<input>valuemealNameが必要なので、mealNameForm.tsxに渡します。

// App.tsx ... <Form setMealName={setMealName} getMealData={getMealData} mealName={mealName} // 追加 /> <Recipe mealData={mealData}/> ...

型情報を追加します。

// Form.tsx type FormProps = { mealName: string; // 追加 setMealName: React.Dispatch<React.SetStateAction<string>>; getMealData: (e: React.FormEvent<HTMLFormElement>) => Promise<void>; } ...

そしてvalueに書き加えます。

// Form.tsx ... // ⬇追加 const Form = ({ mealName, setMealName, getMealData }: FormProps) => { return ( <form onSubmit={getMealData}> <input onChange={(e) => setMealName(e.target.value)} type="text" name="mealName" placeholder="料理名を英語で入力" value={mealName} // 追加 required /> <button>検索</button> ...

これで検索後にフォームの入力文字が消えるようになりました。