Principala problemă legată de pagina de reîncărcare React Router care nu a fost găsită este că atunci când un utilizator reîmprospătează pagina, browserul va încerca să facă o cerere către server pentru adresa URL curentă. Cu toate acestea, deoarece React Router este rutare pe partea client, nu există o rută de server corespunzătoare pentru adresa URL și, astfel, este returnată o eroare 404 Not Found. Acest lucru poate fi mai ales problematic dacă utilizatorii se așteaptă să apară un anumit conținut la reîmprospătare.
import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; const App = () => ( <Router> <Switch> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> {/* Page Not Found */} <Route render={() => (<h1>Page not found</h1>)} /> </Switch> </Router> );
// Linia 1: Această linie importă componentele BrowserRouter, Route și Switch din biblioteca react-router-dom.
// Linia 3: Această linie definește o funcție numită App care returnează codul JSX.
// Linia 5: Această linie include întregul cod JSX într-o componentă Router din react-router-dom.
// Linia 6: Această linie include toate rutele într-o componentă Switch de la react-router-dom.
// Liniile 7 – 9: Aceste linii definesc două rute pentru „/” și, respectiv, „/about” cu componentele lor respective (Acasă și Despre).
// Liniile 11 – 12: Aceste linii definesc o rută pentru când nicio altă rută nu se potrivește, ceea ce redă o etichetă h1 care spune „Pagina nu a fost găsită”.
Eroare pagina nu a fost găsită
Eroarea de pagină nu a fost găsită în React Router este o eroare care apare atunci când un utilizator încearcă să acceseze o pagină sau o rută care nu există. Acest lucru se poate întâmpla dacă utilizatorul a introdus greșit adresa URL sau dacă pagina pe care încearcă să o acceseze a fost eliminată sau mutată. În React Router, această eroare este gestionată utilizând
Cum mă ocup de pagina nu a fost găsită în routerul de reacții
Când utilizați React Router, puteți gestiona o pagină negăsită creând o rută personalizată care va reda o componentă NotFound atunci când adresa URL nu se potrivește cu niciuna dintre rutele existente. Pentru a face acest lucru, trebuie să creați o rută nouă cu calea setată la „*” și să redați componenta NotFound.
De exemplu:
Aceasta se va potrivi cu orice adresă URL care nu este deja potrivită de o rută existentă și va afișa componenta NotFound.
Cum forțez o pagină care reacționează să se reîncarce
În React Router, puteți forța o pagină să se reîncarce utilizând metoda de înlocuire a obiectului istoric. Aceasta va înlocui intrarea curentă din stiva de istoric cu una nouă, forțând astfel o reîncărcare a paginii. Pentru a utiliza această metodă, trebuie mai întâi să obțineți acces la obiectul istoric. Puteți face acest lucru trecându-l ca suport atunci când creați componenta routerului:
const AppRouter = () => (
{/* Rutele tale aici */}
);
Odată ce aveți acces la obiectul istoric, puteți utiliza metoda de înlocuire a acestuia astfel:
history.replace('/some-route');