Přidání formuláře do Reduxu

V minulé lekci jsme se dozvěděli, že pro vstupní pole formuláře lze použít stavy, které budou fungovat pouze uvnitř jedné komponenty, a vytvořili jsme prázdný formulář.

Uvnitř tagů form umístíme značkování pro každé pole, do kterého se bude zadávat informace. První input bude odpovídat za název produktu a jeho značkování bude vypadat takto:

products/NewProductForm.jsx<form>
  <p>
    <label htmlFor="productName">Název:</label>
    <input
      id="productName"
      name="productName"
      value={name}
      onChange={onNameChanged}
    />
  </p>
</form>

Druhý bude textarea pro popis produktu:

products/NewProductForm.jsx<p>
  <label htmlFor="productDesc">Popis:</label>
  <textarea
    id="productDesc"
    name="productDesc"
    value={desc}
    onChange={onDescChanged}
  />
</p>

Napište sami kód pro dva zbývající inputy pro cenu a množství s ID productPrice a productAmount.

Po všech čtyřech vstupních polích před uzavíracím tagem form přidejte tlačítko pro uložení:

products/NewProductForm.jsx<button type="button">uložit</button>

Naše komponenta s formulářem je hotová. Zobrazme ji na hlavní stránce. Pro otevřeme soubor root.jsx, importujme do něj komponentu:

app/root.jsximport { NewProductForm } from '../parts/products/NewProductForm'

A vložme ji mezi tag hr a komponentu ProductsList takto:

app/root.jsx<hr></hr>
<NewProductForm />
<ProductsList />

Spusťme naši aplikaci a podívejme se na formulář a seznam produktů. Přidejme ještě styly do index.css:

index.css#main-page {
  max-width: 600px;
}

select,
textarea,
input,
button {
  font-size: 18px;
}

form {
  margin-bottom: 20px;
  border-bottom: 2px solid lightgray;
  padding-bottom: 10px;
}

form p {
  margin: 5px;
}
Задание 1

Otevřete vaši aplikaci se studenty. Vytvořte značkování pro váš formulář, jak je ukázáno v lekci.

Задание 2

Přidejte hotovou komponentu NewStudentForm na hlavní stránku před StudentsList