⊗jsrxPmWFLS 15 of 57 menu

Formuláře a lokální stavy v Reduxu

V předchozích lekcích jsme se naučili získávat data z store a zobrazovat je v React komponentu. V této lekci začneme přidávat nová data. Uděláme to pomocí formuláře, po jehož vyplnění bude prodejce moci přidat nový produkt.

Začněme tím, že ne vždy má smysl používat globální stav Reduxu. Jsou případy, kdy pro naše potřeby můžeme vytvářet lokální stavy. Lokálními stavy budeme nazývat stavy, které se používají uvnitř určitého komponentu pro technické potřeby. Například pro skrytí nebo zobrazení něčeho po kliknutí na tlačítko.

V našem případě bude uživatel zadávat data do formuláře a přirozeně se nám pro to budou hodit stavy. Mohli bychom použít globální Redux stav, ale to nedává smysl, protože naše stavy budou fungovat pouze na jednom místě aplikace pro formulář přidání produktu. Hlavní pravidlo, kterého je přitom třeba se držet - nesmí se, aby lokální stavy fungovaly mimo komponent, ve kterém byly vytvořeny, a v žádném případě se nesměly dotýkat store. Taková praxe se často používá při vytváření formulářů.

Pojďme otevřít složku products naší aplikace s produkty, vytvořit v ní soubor NewProductForm.jsx a importovat do něj hook useState:

import { useState } from 'react'

Nyní vytvoříme samotný komponent s formulářem a napíšeme v něm obyčejné stavy, jak jsme to dělali dříve v Reactu. Potřebujeme stavy pro práci s názvem, popisem, cenou a množstvím produktu:

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

Dále přidáme standardní zpracování pro každé pole při zadávání dat uživatelem:

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)

A poté vrátíme v komponentu značkování s nadpisem a prázdným formulářem:

return ( <div> <h2>Přidat nový produkt</h2> <form> </form> </div> )

Otevřete vaši aplikaci se studenty. Vytvořte soubor NewStudentForm.jsx ve složce students. Založte v komponentu NewStudentForm lokální stavy pro potřebná pole, napište pro každé pole zpracování, jak je ukázáno v lekci.

Vraťte v komponentu NewStudentForm značkování, obsahující nadpis a prázdný formulář.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout