⊗jsrxPmWFLS 15 of 57 menu

Reduxにおけるフォームとローカルステート

過去のレッスンでは、storeからデータを取得し、 Reactコンポーネント内で表示する方法を学びました。 このレッスンでは、新しいデータを追加する作業に取り掛かります。 フォームを使用してこれを行い、販売者が新しい商品を追加できるようにします。

まず、常にReduxのグローバルステートを使用する必要はないということから始めましょう。 必要に応じてローカルステートを作成できる場合があります。 ローカルステートとは、特定のコンポーネント内で技術的な目的のために使用されるステートを指します。 例えば、ボタンで何かを非表示または表示するためなどです。

今回のケースでは、ユーザーがフォームにデータを入力します。 そのため、当然この目的にはステートが必要になります。 Reduxのグローバルステートを使用することもできますが、 このステートは商品追加フォームというアプリケーション内の一箇所でのみ機能するため、その必要はありません。 これに従うべき主なルールは、ローカルステートが作成されたコンポーネントの外部で機能してはならず、 決してstoreに関与してはならないということです。 このような実践は、フォーム作成時によく用いられます。

それでは、商品管理アプリケーションのproductsフォルダを開き、 その中にファイルNewProductForm.jsxを作成し、 フックuseStateをインポートしましょう:

import { useState } from 'react'

次に、フォームを持つコンポーネント自体を作成し、 以前Reactで行ったのと同様に、通常のステートを記述します。 商品名、説明、価格、数量を扱うためのステートが必要です:

export const NewProductForm = () => { const [name, setName] = useState('') const [desc, setDesc] = useState('') const [price, setPrice] = useState(0) const [amount, setAmount] = useState(0) }

続いて、ユーザーがデータを入力する際の各フィールドに対する標準的な処理を追加します:

const onNameChanged = (e) => setName(e.target.value) const onDescChanged = (e) => setDesc(e.target.value) const onPriceChanged = (e) => setPrice(e.target.value) const onAmountChanged = (e) => setAmount(e.target.value)

そして、コンポーネント内で見出しと空のフォームを含むレンダリングを返します:

return ( <div> <h2>Add a New Product</h2> <form> </form> </div> )

あなたの学生管理アプリケーションを開いてください。 studentsフォルダ内にファイルNewStudentForm.jsxを作成します。 コンポーネントNewStudentFormに必要なフィールド用のローカルステートを用意し、 レッスンで示したように各フィールドの処理を記述してください。

コンポーネントNewStudentForm内で、 見出しと空のフォームを含むレンダリングを返してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否