⊗jsrtPmRtAL 42 of 47 menu

Menyorot Pautan Aktif dalam React Router

Katakanlah kita telah menambah beberapa produk dalam aplikasi kita dan melihat setiap satu produk. Bagaimana kita boleh tahu halaman produk mana yang sedang kita layari sekarang? Mari kita sorot produk tersebut dalam senarai, contohnya dengan fon tebal dan warna perang, dan jika pautan masih dalam proses memuat, kelabu.

Sebagai permulaan, pergi ke halaman utama, tambah 4 produk ke dalam senarai dan untuk setiap satu daripadanya, masukkan data. Berikan mereka sebarang nama.

Dalam menyorot pautan aktif, komponen NavLink akan membantu kita, ini ialah sejenis komponen Link yang mengetahui tentang keadaan data. Biasanya ia digunakan apabila mencipta menu navigasi.

Mari buka root.jsx dan import NavLink (jangan lupa buang import Link, jika tidak React mungkin mengeluarkan ralat, kerana kita tidak menggunakannya lagi):

import { NavLink } from 'react-router-dom';

Kemudian dalam susun atur, gantikan komponen Link dengan NavLink:

<NavLink key={product.id} to={`products/${product.id}`}> {product.name ? product.name : <i>unnamed</i>} </NavLink>

Dan tambahkan prop className kepadanya, serta gunakan logik bersyarat. Jika halaman telah dimuat, pautan akan bertukar kepada keadaan aktif, jika sedang dimuat, kepada keadaan memuat, jika tiada apa-apa sedang berlaku, ia akan kekal seperti sedia kala. Bergantung pada ini, kelas pautan akan berubah:

<NavLink key={product.id} to={`products/${product.id}`} className={({ isActive, isPending }) => isActive ? 'active' : isPending ? 'loading' : '' } > {product.name ? product.name : <i>Unnamed</i>} </NavLink>

Kita hanya perlu menambah gaya untuk kelas active dan loading ke dalam fail css kita:

a.active { font-weight: bold; color: brown; } a.loading { color: gray; }

Selesai! Sekarang klik pada produk dalam senarai.

Ambil aplikasi yang anda buat dalam tugasan untuk pelajaran lepas. Dengan menggunakan bahan pelajaran, laksanakan penyorotan pautan aktif untuk senarai pelajar di dalamnya, supaya jelas data pelajar mana yang pengguna sedang lihat sekarang.

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