⊗jsrtPmRtNFE 25 of 47 menu

Zpracování chyby Not Found v React Router

Při vytváření aplikace je třeba věnovat pozornost také výskytu různých chyb v průběhu jejího dalšího používání. V této lekci se naučíme pracovat s chybou 'Not Found'. K takové chybě může dojít, kupříkladu pokud uživatel klikne na odkaz vedoucí na neexistující stránku.

Pro začátek otevřeme naši aplikaci, kterou jsme vytvářeli v předchozích lekcích, a nahradíme vzhled komponenty Root. Nyní při spuštění aplikace se nám bude zobrazovat seznam dvou produktů:

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

Přidejme několik stylů do index.css:

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

A nyní klikněte na odkazy. Protože nemáme šablony stránek pro naše produkty, odkazy nás zavedou pouze na obrazovku s chybou '404 Not Found' a s výčitkou, že jsme si mohli vymyslet sami něco hezčího a zajímavějšího, než to, co React Router zobrazil ve výchozím nastavení.

Vytvořme naši vlastní stránku, která se bude zobrazovat v případě výskytu chyby 404. K tomu ve složce src vytvoříme soubor error-page-404.jsx.

Uvnitř React komponenty ErrorPage404 použijeme hook useRouteError pro zachycení chyby, kterou budeme vypisovat do konzole:

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

Dále ve vzhledu komponenty ErrorPage404 budeme zobrazovat pár nadpisů, informujících o chybě a vypíšeme takové vlastnosti objektu error, jako statusText a data (objekt error a jeho vlastnosti můžete také vidět, pokud otevřete konzoli a začnete klikat na naše odkazy v aplikaci).

return ( <div> <h1>Ahoj! Toto je stránka chyby</h1> <h2>404 Chyba Not Found</h2> <p> <i>{error.statusText}</i> </p> <p> <i>{error.data}</i> </p> </div> );

Nezapomeňte určitě otevřít soubor main.jsx a přidat ještě jeden řádek importu s ErrorPage404:

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

A také přidejte ještě jednu vlastnost errorElement do objektu Router - tento prvek se zobrazuje, když na dané trase dojde k chybě. Hodnotou prvku chyby bude naše komponenta ErrorPage404:

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

Vezměte aplikaci, kterou jste vytvořili v úkolu k minulé lekci. Přidejte na hlavní stránku seznam sestávající z pár odkazů, jak je znázorněno v lekci. Nechť hodnotami href odkazů jsou - /students/1 a /students/2, a textem odkazů - 'Student1' a 'Student2' odpovídajícím způsobem. Ujistěte se, že při kliknutí na odkazy se vám objeví obrazovka s chybou, kterou React Router vypisuje ve výchozím nastavení.

A nyní vytvořte svou vlastní samostatnou stránku s chybou 404, můžete na ní vypsat to, co chcete. Připojte ji, jak je znázorněno v lekci. A nyní se ujistěte, že při kliknutí na odkazy se dostanete právě na ni.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout