⊗jsrtPmRtPR 47 of 47 menu

Yolsuz Marsrut React Router-da

Bu dersde biz yolsuz marsrutun basqa bir faydali xususiyyetini muzakire edeceyik.

Bilirsiniz ki, her bir marsrut obyekti ucun siz errorElement xassesi elave ede bilersiniz ve deyer kimi xeta bas verdikde gosterilmesini istediyiniz elementi teyin ede bilersiniz.

Bes ya bizim butun marsrutlar ucun errorElement eyni olarsa? Hell edir, her biri ucun eyni seyi tekrarlaya bilerik, ya da yolsuz marsrutdan istifade ederek, bizi maraqlandiran usaq marsrutlari onun icine ala bilerik. O zaman onlardan her hansi birinde xeta bas verdikde, bizim yolsuz marsrutimiz onlari tutacaq ve oz errorElement-ni gosterecek.

Gelin main.jsx faylina daxil olaq ve butun usaq marsrutlarimizi yolsuz marsruta cevirerek, onlari onun usagları edek (oz novbesinde bu marsrut kok marsrutun usagı olacaq), ona hemcinin errorElement xassesini elave etmeyi unutmayaq:

const router = createBrowserRouter([ { path: '/', element: <Root />, errorElement: <ErrorPage404 />, loader: rootLoader, action: rootAction, children: [ { errorElement: <ErrorPage404 />, children: [ { index: true, element: <Index /> }, { path: 'products/:productId', element: <Product />, loader: productLoader, }, { path: 'products/:productId/edit', element: <EditProduct />, loader: editProductLoader, action: editAction, }, { path: 'products/:productId/delete', action: deleteAction, }, ], }, ], }, ]);

Indi bu kodun islemesini necə yoxlamaq olar? Xeta atmaq ucun bir setir elave etmek olar (yoxladıqdan sonra onu silmeyi unutmayın). Meselen, gelin mehsulu silme marsrutu ucun action funksiyasina ilk setir kimi elave edek, o zaman mehsulu silmeye cehd ederken biz xetanı goreceyik:

export async function action({ params }) { throw new Error('error'); await deleteProduct(params.productId); return redirect('/'); }

Indi her hansi bir mehsulu silmeye cehd edin.

Onceki derslerin tapşırıqlarında yaratdığınız proqramı goturun. Ders materiallarından istifade ederek, usaq marsrutlarınızı errorElement xassesi olan yolsuz marsruta cevirin ve bunun istediyiniz kimi islediyini yoxlayın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et