Głównym problemem związanym z przekierowaniem za pomocą React Router v6 jest to, że komponent nie renderuje się ponownie po wystąpieniu przekierowania. Oznacza to, że żaden stan ani rekwizyty powiązane z komponentem nie zostaną zaktualizowane po wystąpieniu przekierowania, a zmiany wprowadzone w tych wartościach nie zostaną odzwierciedlone na nowej stronie. Dodatkowo, ponieważ React Router v6 nie obsługuje ciągów zapytań, wszelkie parametry zapytania przekazane w adresie URL również zostaną utracone podczas przekierowania.
import { Redirect } from "react-router-dom"; <Redirect to="/home" />
1. Ta linia importuje komponent Redirect z biblioteki react-router-dom.
2. Ta linia renderuje komponent Redirect, który przekieruje użytkownika do trasy „/home”.
Jak mogę przekierować w React Router v6
v6
React Router v6 udostępnia nowy komponent o nazwie
importuj { przekierowanie } z „react-router-dom”;
Jak przekierować w reakcji na router v6 po zalogowaniu
Przekierowanie po udanym zalogowaniu to powszechna funkcja w aplikacjach internetowych. W React Router v6 możesz użyć
Aby to zrobić, musisz utworzyć trasę, która sprawdza, czy użytkownik jest zalogowany, a następnie odpowiednio go przekierowuje. Na przykład:
if (jest zalogowany) {
powrót
} Else {
powrót
}
}} />
W tym przykładzie sprawdzamy, czy użytkownik jest zalogowany, a następnie renderujemy komponent LoginPage lub przekierowujemy go do /dashboard. Możesz także przekazać rekwizyty do komponentu Redirect w następujący sposób:
Jak automatycznie przekierować w reakcji
React Router udostępnia komponent Redirect, którego można użyć do automatycznego przekierowania użytkowników po spełnieniu określonych warunków. Aby z niego skorzystać, musisz podać ścieżkę, na którą chcesz przekierować, jako rekwizyt. W razie potrzeby możesz również przekazać obiekt z parametrami stanu i/lub zapytania.
Aby automatycznie przekierować, musisz użyć komponentu w komponencie Trasa i ustawić warunek, kiedy przekierowanie powinno nastąpić. Na przykład, jeśli chcesz przekierować użytkowników ze strony głównej swojej aplikacji na stronę logowania po kliknięciu w link, możesz zrobić coś takiego:
{jest zalogowany?
W tym przykładzie używamy zmiennej boolowskiej isLoggedIn (która musiałaby być ustawiona gdzie indziej) jako naszego warunku, kiedy powinniśmy wykonać przekierowanie. Jeśli to prawda, renderujemy nasz komponent Home; w przeciwnym razie wykonujemy przekierowanie.
Jak przekierować po 5 sekundach w reakcji
Aby przekierować po 5 sekundach w React Router, możesz użyć funkcji setTimeout() do wywołania metody history.push() z żądaną trasą jako argumentem.
Przykład:
import { useHistory } z „react-router-dom”;
const historia = useHistoria();
setTimeout(() => {
historia.push("/redirectedPage");
}, dziesięć tysięcy);
1 myśl na temat „Rozwiązane: przekierowanie za pomocą routera reagującego v6”