⊗jsrxPmWFLS 15 of 57 menu

Formos ir lokalios būsenos Redux

Ankstesnėse pamokose išmokome gauti duomenis iš store ir juos atvaizduoti React komponente. Šioje pamokoje pradėsime pridėti naujus duomenis. Tai darysime naudodami formą, kurią užpildžius, pardavėjas galės pridėti naują produktą.

Pradėsime nuo to, kad ne visada yra prasmė naudoti globalią Redux būseną. Būna atvejų, kai savo poreikiams galime kurti lokalias būsenas. Lokaliomis būsenomis vadinsime būsenas, kurios naudojamos tam tikro komponento viduje techniniams poreikiams. Pavyzdžiui, kad paslėpti arba parodyti ką nors paspaudus mygtuką.

Mūsų atveju vartotojas ves duomenis į formą ir, natūralu, mums prireiks tam būsenų. Galima būtų pasinaudoti globalia Redux būsena, tačiau tame nėra prasmės, nes mūsų būsenos veiks tik vienoje aplikacijos vietoje – produkto pridėjimo formoje. Pagrindinė taisyklė, kuriai reikia sekti - negalima leisti, kad lokalios būsenos veiktų už komponento, kuriame jos sukurtos, ribų ir jokiu atveju neliestų store. Tokia praktika dažnai naudojama kuriant formas.

Atidarykime aplanką products mūsų aplikacijos su produktais, sukurkime jame failą NewProductForm.jsx ir importuokime jį į hook'ą useState:

import { useState } from 'react'

Dabar sukurkime patį komponentą su forma ir parašykime jame įprastas būsenas, kaip mes tai darėme anksčiau React. Mums reikia būsenų, kad dirbtume su pavadinimu, aprašu, kaina ir produkto kiekiu:

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

Toliau pridėkime standartinį apdorojimą kiekvienam laukelui, kai vartotojas įveda duomenis:

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)

Ir tada grąžinkime komponente išdėstymą su antrašte ir tuščia forma:

return ( <div> <h2>Pridėti naują produktą</h2> <form> </form> </div> )

Atidarykite savo studentų aplikaciją. Sukurkite failą NewStudentForm.jsx aplanke students. Apibrėžkite komponente NewStudentForm lokalias būsenas jums reikalingiems laukams, parašykite kiekvienam laukui apdorojimą, kaip parodyta pamokoje.

Grąžinkite komponente NewStudentForm išdėstymą, kuriame yra antraštė ir tuščia forma.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti