⊗jsrxPmATSL 56 of 57 menu

Senarai Penjual dalam Redux

Dalam pelajaran sebelumnya, kami telah menyelesaikan bahan utama. Sekarang dengan menggunakan thunk, kami mendapatkan senarai produk dari pelayan dan boleh menyimpan produk baru di pelayan. Mari kita uruskan penjual. Lagipun, kami mendapat data untuk mereka juga. Mari buat halaman berasingan dengan senarai penjual.

Buka aplikasi produk kami, dan dalamnya folder sellers. Mari buat fail SellersList.jsx dalam folder ini. Di sini kami akan menggunakan useSelector, Link dan selectAllSellers, yang kodnya akan kami tulis dalam sellersSlice.js nanti:

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

Seterusnya, mari buat SellersList itu sendiri. Di dalamnya, kami akan mendapatkan semua penjual menggunakan hook useSelector, kemudian dapatkan markup untuk senarai penjual dalam gelung map, di mana setiap nama penjual akan membawa kepada halaman mereka. Dan akhirnya, kembalikan markup dengan tajuk dan senarai yang diperoleh:

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

Kemudian, masuk ke fail sellersSlice.js dan seperti selector dalam productsSlice.js, buat dua selector di akhir fail selepas eksport reducer:

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

Sekarang kami perlu menetapkan laluan untuk halaman dengan senarai, untuk ini buka fail App.jsx dan dalam array laluan anak children tambah satu objek lagi (jangan lupa untuk import komponen SellersList):

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

Untuk pautan 'Sellers' dalam menu berfungsi, mari masuk ke fail root.jsx (lama nya... ) dan tukar tag a kepada elemen NavLink:

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

Dan akhir sekali. Untuk pautan aktif dalam menu kami diserlahkan, dan adalah jelas di halaman mana kami berada, kami akan menambah gaya dalam index.css:

nav a.active { color: purple; }

Jalankan aplikasi kami. Sekarang kami boleh pergi ke halaman dengan penjual, dengan mengklik 'Sellers' dalam menu. Sudah tentu, sebelum itu, perlu klik 'Products' dalam menu, jika tidak, produk kami tidak akan dimuatkan. Dalam pelajaran seterusnya, kami akan buat halaman untuk setiap penjual dan dengan itu menamatkan pembelajaran tutorial Redux ini.

Buka aplikasi pelajar anda. Setelah mempelajari bahan pelajaran, dalam folder teachers buat fail TeachersList.jsx. Dengan menggunakan komponen ini, anda akan memaparkan senarai guru. Import ke dalamnya komponen dan hook yang diperlukan.

Tulis kod untuk komponen TeachersList, dapatkan semua guru di dalamnya dan buat senarai guru teachersToRender, biarkan setiap baris dalam senarai ini memaparkan nama keluarga dan inisial mereka, dan dalam kurungan subjek yang mereka ajar. Biarkan setiap Nama Penuh menjadi pautan yang membawa ke halaman berasingan untuk setiap guru. Kemudian pada akhir kod komponen, kembalikan markup dengan tajuk dan senarai yang dibuat.

Di akhir fail teachersSlice.js buat sepasang fungsi pemilih selectAllTeachers dan selectTeacherById, seperti yang ditunjukkan dalam pelajaran.

Dalam App.jsx sambungkan satu lagi laluan anak untuk halaman guru.

Dalam fail root.jsx dalam menu untuk 'Teachers' tukar tag a kepada NavLink, seperti yang ditunjukkan dalam pelajaran. Pastikan pautan aktif dalam menu diserlahkan, dengan menambah gaya untuk ini dalam index.css.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak