⊗jsrtPmRtNFE 25 of 47 menu

Not Found -virheen käsittely React Routerissa

Sovellusta luodessa on kiinnitettävä huomiota myös erilaisten virheiden ilmestymiseen sen myöhemmän käytön aikana. Tässä oppitunnissa opimme työskentelemään 'Not Found' -virheen kanssa. Tällainen virhe voi ilmaantua esimerkiksi, jos käyttäjä napsauttaa linkkiä, joka johtaa olematomalle sivulle.

Aluksi avataan sovelluksemme, jota teimme edellisillä tunneilla, ja korvataan Root -komponentin merkintäkieli. Nyt sovelluksen käynnistyessä meillä näytetään lista kahdesta tuotteesta:

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

Lisätään hieman tyylejä tiedostoon index.css:

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

Ja nyt napsauta linkkejä. Koska meillä ei ole sivumalleja tuotteillemme, linkit johtavat meidät vain '404 Not Found' -virhernäytölle ja nuhteluun siitä, että olisimme voineet keksiä itse jotain kauniimpaa ja mielenkiintoisempaa kuin mitä React Router näytti meille oletusarvoisesti.

Tehdään oma pieni sivu, jota näytetään tapauksessa virheen 404 ilmaantuminen. Tätä varten luodaan kansioon src tiedosto error-page-404.jsx.

React-komponentin ErrorPage404 sisällä hyödynnämme useRouteError -hookkia virheen sieppaamiseen, jonka tulostamme konsoliin:

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

Seuraavaksi ErrorPage404 -komponentin merkintäkielessä näytämme pari otsikkoa, joissa ilmoitetaan virheesta ja tulostamme error -olion sellaiset ominaisuudet kuin statusText ja data (error -olio ja sen ominaisuudet voit myös nähdä, jos avaat konsolin ja alat napsauttamaan linkkejämme sovelluksessa).

return ( <div> <h1>Hei! Tämä on virhesivu</h1> <h2>404 Not Found -virhe</h2> <p> <i>{error.statusText}</i> </p> <p> <i>{error.data}</i> </p> </div> );

Muista avata tiedosto main.jsx ja lisätä vielä yksi import-rivi ErrorPage404:lle:

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

Ja lisää myös yksi ominaisuus errorElement Router -olioon - tämä elementti näytetään, kun tällä reitillä ilmenee virhe. Virheelementin arvoksi tulee komponenttimme ErrorPage404:

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

Ota edellisen tunnin tehtävässä luomasi sovellus. Lisää kotisivulle lista, joka koostuu parista linkistä, kuten oppitunnissa on esitetty. Olkoon linkkien href -arvoja - /students/1 ja /students/2, ja linkkien tekstit - 'Student1' ja 'Student2' vastaavasti. Varmista, että linkkejä napsautettaessa sinulle ilmestyy virhenäyttö, jonka React Router näyttää oletusarvoisesti.

Ja nyt luo oma erillinen sivusi virheelle 404, voit näyttää siinä mitä haluat. Yhdistä se, kuten oppitunnissa on esitetty. Ja nyt varmista, että linkkejä napsautettaessa pääset juuri sille.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää