⊗jsrxPmWFDA 18 of 57 menu

Dërgimi i action dhe hooku useDispatch në Redux

Ne kemi implementuar pothuajse të gjithë përbërësit për funksionimin e aplikacionit Redux. Mbetet vetëm të kuptojmë dërgimin e action nga komponenti React. Le të fillojmë.

Hapni aplikacionin tonë me produktet. Në formën e komponentit NewProductForm ne kemi një buton për të ruajtur të dhënat e produktit të ri. Le t'i vendosim një përpunues kliku. Le të ekzekutohet përpunuesi onSaveProductClick me klikun mbi të:

<button type="button" onClick={onSaveProductClick}> ruaj </button>

Gjatë krijimit të një produkti të ri, do të na duhet një id e re për të. Ne do ta gjenerojmë atë duke përdorur bibliotekën e njohur nanoid. Meqë ra fjala, nuk ka nevojë ta instaloni, sepse ajo vjen tashmë me paketin RTK. Le të shtojmë nanoid në import:

import { nanoid } from '@reduxjs/toolkit'

Gjithashtu kujtojmë se mënyra e vetme për të ndryshuar state - është të thirrim metodën dispatch, që e ka store dhe t'i kalojmë objektin action. Për të arritur këtë metodë, ne do të përdorim hookun e React-Redux useDispatch. Le ta importojmë edhe atë:

import { useDispatch } from 'react-redux'

Në kodin e funksionit NewProductForm le të krijojmë për të një konstante dispatch menjëherë pasi të kemi krijuar konstantet për state-t tona lokale:

const dispatch = useDispatch()

Gjithashtu na duhet të importojmë action creator-in productAdded, i cili u përftua në mësimin e kaluar:

import { productAdded } from './productsSlice'

Tani mund të shkruajmë vetë funksionin përpunues onSaveProductClick. Le ta bëjmë këtë përpara komandës return:

const onSaveProductClick = () => {}

Brenda funksionit ne e thirrim dispatch, formojmë objektin action, në vetinë payload të të cilit do të vendosen id e gjeneruar, emri, përshkrimi, çmimi dhe sasia e produktit. Të gjitha këto të dhëna i marrim nga state-t lokal. Në fillim kontrollojmë në kusht nëse të gjitha fushat janë plotësuar - vetëm në këtë rast e thirrim dispatch. Në fund të kodit të funksionit ne i kthejmë state-t lokal në gjendjen fillestare:

const onSaveProductClick = () => { if (name && desc && price && amount) { dispatch( productAdded({ id: nanoid(), name, desc, price, amount }) ) setName('') setDesc('') setPrice(0) setAmount(0) } }

Tani le ta startojmë aplikacionin tonë, të vendosim të dhënat në fushat e formës dhe të klikojmë butonin e ruajtjes. Hura, në fund të faqes u shfaq një produkt i ri. Duke hapur Redux DevTools, dhe në të skedën Inspector, ne shohim se majtas përveç @@INIT u shfaq edhe action-i ynë products/productAdded. Në pjesën e djathtë ne mund të klikojmë në skedat Action dhe State, duke ndërruar në këtë rast @@INIT dhe products/productAdded. Tani shohim se produkti ynë i ri shtohet. Gjithashtu në skedën Action shohim action-in, të gjeneruar automatikisht me ndihmën e createSlice (klikoni, për shembull, në Raw). Hura: nuk na duhej ta shkruanim atë me dorë.

Hapni aplikacionin tuaj me studentët, e më pas skedarin NewStudentForm.jsx, vendosni në butonin e ruajtjes një përpunues kliku.

Shkruani të gjitha importet e nevojshme dhe shkruani funksionin-përpunues onSaveStudentClick, duke aplikuar metodën dispatch siç tregohet në mësim.

Startoni aplikacionin, vendosni në fushat e formës të dhënat dhe klikoni në butonin e ruajtjes. U bindeni që në fund të faqes u shtua një student i ri.

Hapni Redux DevTools dhe shfletoni nëpër skedat Action dhe State, u bindeni që objekti i ri me studentin shtohet. Shikoni objektin action që u gjenerua, dërgjeni atë në përgjigje të kësaj detyre.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo