⊗jsrxPmATSL 56 of 57 menu

Спіс прадаўцоў у Redux

На мінулых занятках мы скончылі з асноўным матэрыялам. Цяпер з дапамогай thunk мы атрымліваем спіс прадуктаў з сервера і можам захаваць на серверы новы прадукт. Давайце разбярэмся з прадаўцамі. Бо мы атрымліваем даныя і для іх. Давайце зробім асобную староначку са спісам прадаўцоў.

Адкрыем наша прыкладанне з прадуктамі, а ў ім папку sellers. Стварым у гэтай папцы файл SellersList.jsx. Тут мы будзем выкарыстоўваць useSelector, Link і selectAllSellers, код якога мы напішам у sellersSlice.js крыху пазней:

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

Далей створым сам SellersList. У ім мы атрымаем усіх прадаўцоў з дапамогай хука useSelector, затым атрымаем верстку для спісу прадаўцоў у цыкле map, прычым кожная назва прадаўца ў нас будзе весці на яго староначку. І ў канцы вернем верстку з загалоўкам і атрыманым спісам:

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> ) }

Затым зайдзем у файл sellersSlice.js і па аналогіі з селектарамі ў productsSlice.js створым у самым канцы файла два селектары пасля экспарту рэдьюсера:

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

Цяпер нам неабходна прапісаць маршрут для старонкі са спісам, для гэтага адкрыем файл App.jsx і ў масіў даччыных маршрутаў children дадамо яшчэ адзін аб'ект (не забудзьцеся імпартаваць кампанент SellersList):

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

Каб нашая спасылка 'Sellers' у меню запрацавала, давайце зайдзем у файл root.jsx (як даўно гэта было ... ) і замянім тэг a на элемент NavLink:

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

І апошняе. Каб у нашай менюшцы вылучалася актыўная спасылка, і было зразумела на якой староначцы мы знаходзімся, мы дадамо стыль у index.css:

nav a.active { color: purple; }

Запусцім наша прыкладанне. Цяпер мы можам зайсці на староначку з прадаўцамі, клікнуўшы па 'Sellers' у меню. Раней, вядома, трэба клікнуць па 'Products' у меню, інакш нашы прадукты не падгрузяцца. На наступным уроке мы зробім староначку для кожнага прадаўца і на гэтым скончым вывучэнне дадзенага падручніка па Redux.

Адкрыйце ваша прыкладанне са студэнтамі. Вывучыўшы матэрыялы ўрока, у папцы teachers стварыце файл TeachersList.jsx. З дапамогай гэтага кампанента вы будзеце выводзіць спіс выкладчыкаў. Імпартуйце ў яго неабходныя кампаненты і хукі.

Напішыце код для кампанента TeachersList, атрымайце ў ім усіх выкладчыкаў і зрабіце спіс выкладчыкаў teachersToRender, хай у кожным радку гэтага спісу адлюстроўваюцца іх прозвішчы і ініцыялы, а ў дужках прадмет, які яны вядуць. Хай кожныя ПІБ разам будуць спасылкай, якая вядзе на асобную старонку для кожнага выкладчыка. Затым у канцы кода кампанента вярніце верстку з загалоўкам і створаным спісам.

У канцы файла teachersSlice.js стварыце пару функцый-селектараў selectAllTeachers і selectTeacherById, як паказана ў уроку.

У App.jsx падключыце яшчэ адзін даччыны маршрут для староначкі з выкладчыкамі.

У файле root.jsx у меню для 'Teachers' замяніце тэг a на NavLink, як паказана ў уроку. Зрабіце так, каб актыўная спасылка ў меню як-небудзь вылучалася, дадаўшы для гэтага стылі ў index.css.

Беларуская
AfrikaansAzərbaycanБългарскиবাংলাČeštinaDanskDeutschΕλληνικά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
Мы выкарыстоўваем cookie для працы сайта, аналітыкі і персаналізацыі. Апрацоўка дадзеных адбываецца згодна Палітыкай канфідэнцыяльнасці.
прыняць усе наладзіць адхіліць