⊗jsrtPmRtPR 47 of 47 menu

React Routerда йўлсиз маршрут

Ушбу дарсда биз йўлсиз маршрутнинг яна бир фойдали хусусиятини кўриб чиқамиз.

Сиз биласизки, ҳар бир маршрут объекти учун сиз errorElement хусусиятини қўшишингиз mумкин ва қиймат сифатида хатолик юз белганда кўрсатмоқчи бўлган элементни белгилашингиз mумкин.

Лекин агар бизда errorElement ҳамма маршрутлар учун бир хил бўлса? Албатта, ҳар бири учун бир хил нарсани такрорлаш мумкин, yoki йўлсиз маршрутдан фойдаланиб, бизга керакли болалар маршрутларини ура оламиз. У ҳолда уларнинг бирида хатолик юз берганда, бизнинг йўлсиз маршрутимиз ушбу хатоликни ушлаб, ўзининг errorElement ни кўрсатади.

main.jsx файлига кириб, барча болалар маршрутларимизни йўлсиз маршрут ичига оламиз (ўзи эса яна асосий маршрутнинг боласи бўлади), унинг учун errorElement хусусиятини ҳам қўшамиз:

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, }, ], }, ], }, ]);

Энди ушбу коднинг ишлашини қандай текширамиз? Хатоликни чиқариш учун бир қатор қўшиш мумкин (текширгандан сўнг унютманг уни олиб ташланг). Масалан, уни маҳсулотни ўчириш учун action функциясининг биринчи қаторига қўшамиз, у ҳолда маҳсулотни ўчиришга уринишда биз хатоликни кўрамиз:

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

Энди бирон маҳсулотни ўчириб кўринг.

Олдинги дарслардаги вазифаларда яратган иловангизни олинг. Дарс материалларидан фойдаланиб, болалар маршрутларингизни errorElement хусусиятига эга йўлсиз маршрут ичига олинг ва у ишлашини текширинг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш