Glavni problem vezan za preusmjeravanje s React Routerom v6 je taj što se komponenta ne renderira kada dođe do preusmjeravanja. To znači da bilo koje stanje ili props povezani s komponentom neće biti ažurirani kada dođe do preusmjeravanja, a sve promjene unesene u te vrijednosti neće se odraziti na novoj stranici. Dodatno, budući da React Router v6 ne podržava nizove upita, svi parametri upita proslijeđeni u URL-u također će biti izgubljeni tokom preusmjeravanja.
import { Redirect } from "react-router-dom"; <Redirect to="/home" />
1. Ova linija uvozi komponentu Preusmjeravanje iz biblioteke react-router-dom.
2. Ova linija prikazuje komponentu Redirect, koja će preusmjeriti korisnika na rutu “/home”.
Kako mogu preusmjeriti u React Routeru v6
v6
React Router v6 pruža novu komponentu pod nazivom
import { Preusmjeravanje } iz 'react-router-dom';
Kako da preusmjerim u react ruteru v6 nakon prijave
Preusmjeravanje nakon uspješne prijave je uobičajena karakteristika u web aplikacijama. U React Routeru v6 možete koristiti
Da biste to učinili, morat ćete kreirati rutu koja provjerava da li je korisnik prijavljen i zatim ga preusmjerava u skladu s tim. Na primjer:
if (isLoggedIn) {
povratak
} Else {
povratak
}
}} />
U ovom primjeru provjeravamo da li je korisnik prijavljen, a zatim ili renderiramo komponentu LoginPage ili ga preusmjeravamo na /dashboard. Također možete proslijediti props u komponentu Preusmjeravanje na sljedeći način:
Kako da automatski preusmjerim u reakciji
React Router pruža komponentu Redirect koja se može koristiti za automatsko preusmjeravanje korisnika kada su ispunjeni određeni uvjeti. Da biste ga koristili, morate proći stazu na koju želite preusmjeriti kao prop. Također možete proslijediti objekt sa parametrima stanja i/ili upita ako je potrebno.
Za automatsko preusmjeravanje, morat ćete koristiti komponentu unutar komponente Route i postaviti uvjet kada bi se preusmjeravanje trebalo dogoditi. Na primjer, ako želite preusmjeriti korisnike s početne stranice vaše aplikacije na stranicu za prijavu nakon što kliknu na link, možete učiniti nešto poput ovoga:
{isLoggedIn ?
U ovom primjeru koristimo isLoggedIn logičku varijablu (koja bi trebala biti postavljena negdje drugdje) kao naš uvjet kada bismo trebali izvršiti preusmjeravanje. Ako je istina, onda renderiramo našu Home komponentu; u suprotnom, vršimo preusmjeravanje.
Kako preusmjeriti nakon 5 sekundi u reakciji
Za preusmjeravanje nakon 5 sekundi u React Routeru, možete koristiti funkciju setTimeout() da pozovete metod history.push() sa željenom rutom kao argumentom.
Primjer:
import { useHistory } iz “react-router-dom”;
const historija = useHistory();
setTimeout(() => {
history.push(“/redirectedPage”);
}, 5000);
1 misao o “Riješeno: preusmjeravanje s react ruterom v6”