⊗jsrtPmRtNFE 25 of 47 menu

Обработка на грешката Not Found в React Router

При създаването на приложение трябва да обърнем внимание и на появата на различни грешки в процеса на неговата последваща употреба. В този урок ще се научим да работим с грешката 'Not Found'. Такава грешка може да се появи, например, ако потребителят кликне върху връзка, която води към несъществуваща страница.

Като начало нека отворим нашето приложение, което правихме в предишните уроци, и заменим верстката на компонента Root. Сега при стартиране на приложението ще се показва списък от два продукта:

function Root() { return ( <nav> <a href={`/products/1`}>Product1</a> <a href={`/products/2`}>Product2</a> </nav> ); } export default Root;

Нека добавим малко стилове в index.css:

body { font-size: 18px; line-height: 1.5; } nav { display: flex; flex-direction: column; } a { text-decoration: none; color: blue; }

А сега кликвайте по връзките. Тъй като нямаме шаблони на страници за нашите продукти, връзките ще ни отведат само до екран с грешка '404 Not Found' и упрек в това, че можехме да измислим сами нещо по-красиво и по-интересно, отколкото това, което React Router показа по подразбиране.

Нека си направим наша собствена страничка, която да се показва в случай на поява на грешка 404. За това в папката src ще създадем файл error-page-404.jsx.

Вътре в React компонента ErrorPage404 ще използваме хука useRouteError за улавяне на грешката, която ще извеждаме в конзолата:

import { useRouteError } from 'react-router-dom'; function ErrorPage404() { const error = useRouteError(); console.error(error); } export default ErrorPage404;

След това във верстката на компонента ErrorPage404 ще показваме няколко заглавия, съобщаващи за грешката и ще изведем такива свойства на обекта error, като statusText и data (обекта error и неговите свойства можете да видите също, ако отворите конзолата и започнете да кликате по нашите връзки в приложението).

return ( <div> <h1>Здравейте! Това е страница за грешка</h1> <h2>404 Грешка - Не е намерено</h2> <p> <i>{error.statusText}</i> </p> <p> <i>{error.data}</i> </p> </div> );

Не забравяйте да отворите файла main.jsx и да добавите още един ред за импорт с ErrorPage404:

import ErrorPage404 from './error-page-404';

И също така добавете още едно свойство errorElement в обекта Router - този елемент се показва, когато в този маршрут възникне грешка. Стойността на елемента за грешка ще бъде нашият компонент ErrorPage404:

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

Вземете приложението, създадено от вас в задачата към предишния урок. Добавете на главната страница списък, състоящ се от няколко връзки, както е показано в урока. Нека стойностите на href на връзките бъдат - /students/1 и /students/2, а текстът на връзките - 'Student1' и 'Student2' съответно. Уверете се, че при кликване върху връзките се появява екран с грешка, която React Router показва по подразбиране.

А сега създайте ваша отделна страничка за грешка 404, можете да покажете на нея това, което искате. Свържете я, както е показано в урока. И сега се уверете, че при кликване по връзките попадате точно на нея.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČ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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне