⊗jsrxPmWFLS 15 of 57 menu

Formulare și stări locale în Redux

În lecțiile anterioare am învățat să obținem date din store și să le afișăm în componentele React. În această lecție vom începe să adăugăm date noi. Vom face acest lucru cu ajutorul unui formular, pe care, după ce îl completează, vânzătorul va putea adăuga un nou produs.

Să începem cu faptul că nu are întotdeauna sens să folosim starea globală Redux. Există cazuri când pentru nevoile noastre putem crea stări locale. Vom numi stări locale acele stări care sunt utilizate în interiorul unei anumite componente pentru nevoi tehnice. Spre exemplu, pentru a ascunde sau afișa ceva la click pe un buton.

În cazul nostru, utilizatorul va introduce date în formular și, în mod natural, vom avea nevoie de stări pentru asta. Am putea folosi starea globală Redux, dar nu are sens, deoarece stările noastre vor funcționa doar într-un singur loc din aplicație, pentru formularul de adăugare a produsului. Regula principală pe care trebuie să o urmăm în acest caz - stările locale nu trebuie să funcționeze în afara componentei în care sunt create și în niciun caz să nu afecteze store-ul. O astfel de practică este adesea folosită la crearea de formulare.

Să deschidem folderul products din aplicația noastră cu produse, să creăm în el fișierul NewProductForm.jsx și să importăm în el hook-ul useState:

import { useState } from 'react'

Acum să creăm componenta cu formularul și să definim în ea stări obișnuite, așa cum am făcut în React anterior. Avem nevoie de stări pentru a lucra cu numele, descrierea, prețul și cantitatea produsului:

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

Apoi, să adăugăm procesarea standard pentru fiecare câmp atunci când utilizatorul introduce date:

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)

Și apoi să returnăm în componentă markup-ul cu titlu și un formular gol:

return ( <div> <h2>Adaugă un Produs Nou</h2> <form> </form> </div> )

Deschideți aplicația voastră cu studenții. Creați fișierul NewStudentForm.jsx în folderul students. Definiți în componenta NewStudentForm stări locale pentru câmpurile necesare, scrieți pentru fiecare câmp procesarea, așa cum este arătat în lecție.

Returnați în componenta NewStudentForm markup-ul care conține titlul și un formular gol.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge