⊗jsrxPmRDInr 20 of 57 menu

Работа з дадзенымі ў Redux

У папярэднім раздзеле мы рэалізавалі базавую схему работы Redux і цяпер вы ведаеце асноўныя прынцыпы работы Redux прыкладання. У наступных уроках мы пачнем дапаўняць функцыянал нашага прыкладання з прадуктамі і папрацуем з дадзенымі.

Паколькі прыкладанне будзе абрастаць новымі кампанентамі і маршрутамі, давайце зробім з маршрутызацыяй адну рэч. Адкрыйце прыкладанне з прадуктамі, затым файл root.jsx. Імпартуйце ў яго кампанент Outlet, пры гэтым выдаліце радкі з імпартам ProductsList і NewProductForm:

import { Outlet } from 'react-router-dom'

Цяпер кампанент Root у нас будзе адлюстроўвацца па каранёвым шляху '/', а ўсе іншыя кампаненты па даччыных у Outlet. Для гэтага крыху выправім вёрстку дыва #main-page для кампанента Root:

<div id="main-page"> <h2>My Products App</h2> <hr></hr> <NewProductForm /> <ProductsList /> </div>

Тут мы паставім Outlet замест кампанентаў NewProductForm і ProductsList:

<div id="main-page"> <h2>My Products App</h2> <hr></hr> <Outlet /> </div>

Форму для дадавання прадуктаў мы цяпер будзем выводзіць у ProductsList. Давайце адкрыем файл з гэтым кампанентам і дадамо імпарт формы:

import { NewProductForm } from './NewProductForm'

А цяпер дадамо кампанент з формай прама перад спісам прадуктаў. Цяпер нашая вёрстка будзе выглядаць так:

return ( <div> <NewProductForm /> <div> <h2>Products</h2> {dispProducts} </div> </div> )

Дапішем стыль для класа products-list у index.css:

.products-list { display: flex; flex-direction: column; }

Нам застаецца толькі ўнесці змены ў галоўны кампанент App. Адкрыем App.jsx і імпартуем у яго кампанент ProductsList:

import { ProductsList } from './parts/products/ProductsList'

Затым для нашага пакуль адзінага маршруту, які з'яўляецца каранёвым, дадамо ўласцівасць children:

const router = createBrowserRouter([ { path: '/', element: <Root />, children: [] }, ])

І выпішам у якасці значэння гэтай уласцівасці першы даччыны маршрут. У якасці шляху ўсталюем яму 'products'. Цяпер па гэтым адрасе ў нас будзе адлюстроўвацца наш спіс з прадуктамі ProductsList:

children: [ { path: '/products', element: <ProductsList />, }, ],

Запусцім наша прыкладанне і пераканаемся, што мы нічога не паламалі. У карані '/' мы бачым толькі загаловак. А формачка і спіс прадуктаў у нас схаваліся па адрасе '/products'.

Адкрыйце ваша прыкладанне са студэнтамі. У файле root.jsx замяніце кампаненты StudentsList і NewStudentForm на Outlet.

Хай цяпер форма для дадавання студэнта адлюстроўваецца ў вас у StudentsList.

Унясіце змены ў ваш галоўны кампанент App. Дадайце да каранёвага маршруту даччыны, са шляхам '/students', па якому будзе адлюстроўвацца ваш StudentsList. Запусціце прыкладанне і пераканайцеся, што ў вас усё працуе.

bydeenesfrptru