⊗jsrxPmATSL 56 of 57 menu

Redux-da satyjylaryň sanawy

Öňki sapaklarda biz esasy material bilen gutardyk. Indi thunk kömegi bilen serwerden önümleriň sanawyny alyp bileris we serwere täze önümi saklap bileris. Geliň, satyjylar bilen hem meşgullanıň. Elbetde, biz olar üçin hem maglumatlary alýarys. Geliň, satyjylaryň sanawy üçin aýratyn sahypa ýasaýaly.

Önümler bilen aplikasiýamyzy açalyň, we onda sellers bukjasyna girip. Bu bukjada SellersList.jsx faýlyny dörediň. Bu ýerde biz useSelector, Link we selectAllSellers-dan peýdalanyp, koduny biz soňra ýazjak bolan sellersSlice.js faýlynda ýazarys:

import { useSelector } from 'react-redux' import { Link } from 'react-router-dom' import { selectAllSellers } from './sellersSlice'

Soňra, özüni SellersList dörediň. Onda biz ähli satyjylary useSelector garmagy bilen alyp, soňra satyjylaryň sanawy üçin sazlanyşykly ýerleşişi map aýlawynda alyp, hem-de her bir satyjynyň ady öz sahypasyna ýol görkezer bolsun. We ahyrynda, atly we alnan sanaw bilen ýerleşişi yzyna gaýtaryň:

export const SellersList = () => { const sellers = useSelector(selectAllSellers) const sellersToRender = sellers.map((seller) => ( <li key={seller.id}> <Link to={`/sellers/${seller.id}`}>{seller.name}</Link> </li> )) return ( <div> <h2>Sellers:</h2> <ul>{sellersToRender}</ul> </div> ) }

Soňra, sellersSlice.js faýlyna giriň we productsSlice.js faýlyndaky saýlawçylara meňzeş şekilde faýlyň ahyrynda, reducer eksport edilenden soň iki sany saýlawçy dörediň:

export const selectAllSellers = (state) => state.sellers export const selectSellerById = (state, sellerId) => state.sellers.find((seller) => seller.id === sellerId)

Indi biz sanawyň sahypasy üçin ýol belgini ýazmaly, onuň üçin App.jsx faýlyny açyň we çagalaryň ýollarynyň massiwine children ýene bir objekt goşuň (SellersList komponentini import etmekligi ýatdan çykarmaň):

{ path: '/sellers', element: <SellersList />, },

Menýudaky 'Sellers' baglanyşygymyzyň işlemegi üçin, geliň, root.jsx faýlyna giriň (bu näçe wagt bolanda ... ) we a tegini NavLink elementine çalşyryň:

<NavLink to="/sellers" end> Sellers </NavLink>

We iň soňky. Menýumyzda aktiw baglanyşyk bellenip görkezilmegi we näçe sahypada ýerleşýändigimiz anyk bolmagy üçin, biz index.css faýlyna stili goşýarys:

nav a.active { color: purple; }

Aplikasiýamyzy işledeliň. Indi biz menýudaky 'Sellers'-e basyp, satyjylaryň sahypasyna girip bileris. Elbetde, ilki bilen menýudaky 'Products'-e basmaly, ýogsa önümlerimiz ýüklenmez. Indiki sapakda her bir satyjynyň sahypasyny dörederis we bu Redux okuw gollanmasyny öwrenmek bilen tamamlaris.

Okuwçylaryňyz bilen aplikasiýaňyzy açyň. Sapagyň materiallaryny öwrenip, teachers bukjasyna giriň we TeachersList.jsx faýlyny dörediň. Bu komponent kömegi bilen siz okuw ussatlarynyň sanawyny görkezeris. Ona zerur komponentleri we garmaklary import ediň.

TeachersList komponenti üçin kody ýazyň, onda ähli okuw ussatlaryny alyň we okuw ussatlaryň sanawyny teachersToRender düzüň. Bu sanawyň her setirinde olaryň familiýalary we inisiallary görkezilsin, we möjeler içinde okadýan predmetleri görkezilsin. Her bir familiýa we inisiallar bilelikde baglanyşyk bolsun, bu baglanyşyk her bir okuw ussatynyň aýratyn sahypasyna ýol görkezsin. Soňra komponent kodyňyň ahyrynda at bilen we düzülen sanaw bilen ýerleşişi yzyna gaýtaryň.

teachersSlice.js faýlynyň ahyrynda sapakda görkezilen ýaly selectAllTeachers we selectTeacherById funksiýa-saýlawçylaryň jübütini dörediň.

App.jsx faýlynda okuw ussatlaryň sahypasy üçin ýene bir çaga ýol goşuň.

root.jsx faýlynda menýudaky 'Teachers' üçin a tegini NavLink bilen çalşyryň, sapakda görkezilen ýaly. Menýudaky aktiw baglanyşyk nähili bir belli görkezilsin, munuň üçin index.css faýlyna stilleri goşuň.

Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et