Nalutas: pag-redirect gamit ang react router v6

Ang pangunahing problema na nauugnay sa pag-redirect gamit ang React Router v6 ay ang component ay hindi muling nagre-render kapag may naganap na pag-redirect. Nangangahulugan ito na ang anumang estado o props na nauugnay sa bahagi ay hindi maa-update kapag naganap ang pag-redirect, at anumang mga pagbabagong ginawa sa mga halagang iyon ay hindi makikita sa bagong pahina. Bukod pa rito, dahil hindi sinusuportahan ng React Router v6 ang mga string ng query, mawawala rin ang anumang mga parameter ng query na ipinasa sa URL sa panahon ng pag-redirect.

import { Redirect } from "react-router-dom";

<Redirect to="/home" />

1. Ini-import ng linyang ito ang bahagi ng Redirect mula sa library ng react-router-dom.

2. Nagre-render ang linyang ito ng bahagi ng Redirect, na magre-redirect sa user sa rutang “/home”.

Paano ako makakapag-redirect sa React Router v6

v6

Nagbibigay ang React Router v6 ng bagong component na tinatawag na maaaring magamit upang i-redirect ang mga user mula sa isang pahina patungo sa isa pa. Para magamit ito, kailangan mo lang i-import ang Redirect component mula sa react-router-dom package at pagkatapos ay gamitin ito sa configuration ng iyong ruta. Kapag binisita ng isang user ang landas na tinukoy sa prop na 'mula sa', ire-redirect sila sa landas na tinukoy sa prop na 'to'. Halimbawa:

import { Redirect } mula sa 'react-router-dom';
} />

Paano ako magre-redirect sa react router v6 pagkatapos mag-login

Ang pag-redirect pagkatapos ng matagumpay na pag-login ay isang karaniwang tampok sa mga web application. Sa React Router v6, maaari mong gamitin ang component upang i-redirect ang user pagkatapos ng matagumpay na pag-login.

Upang gawin ito, kakailanganin mong lumikha ng isang ruta na nagsusuri kung ang user ay naka-log in at pagkatapos ay i-redirect ang mga ito nang naaayon. Halimbawa:

{
kung (ayLoggedIn) {
pagbabalik ;
} Iba pa {
pagbabalik ;
}
}} />

Sa halimbawang ito, sinusuri namin kung naka-log in ang user at pagkatapos ay i-render ang bahagi ng LoginPage o ire-redirect sila sa /dashboard. Maaari mo ring ipasa ang mga props sa bahagi ng Redirect tulad nito: Nagbibigay-daan ito sa iyong subaybayan kung nasaan ang user bago sila na-redirect.

Paano ako awtomatikong magre-redirect bilang reaksyon

Ang React Router ay nagbibigay ng Redirect component na maaaring magamit upang awtomatikong i-redirect ang mga user kapag natugunan ang ilang partikular na kundisyon. Upang magamit ito, dapat kang pumasa sa landas na gusto mong i-redirect bilang prop. Maaari ka ring magpasa sa isang bagay na may mga parameter ng estado at/o query kung kinakailangan.

Upang awtomatikong mag-redirect, kakailanganin mong gamitin ang bahagi sa loob ng isang bahagi ng Ruta at mag-set up ng kundisyon kung kailan dapat mangyari ang pag-redirect. Halimbawa, kung gusto mong i-redirect ang mga user mula sa home page ng iyong application patungo sa login page pagkatapos nilang mag-click sa isang link, maaari kang gumawa ng ganito:


{isLoggedIn ? : }

Sa halimbawang ito, ginagamit namin ang isLoggedIn boolean variable (na kakailanganing itakda sa ibang lugar) bilang aming kundisyon kung kailan namin dapat gawin ang pag-redirect. Kung ito ay totoo, pagkatapos ay i-render namin ang aming bahagi ng Home; kung hindi, ginagawa namin ang pag-redirect.

Paano ka magre-redirect pagkatapos ng 5 segundo sa reaksyon

Upang mag-redirect pagkatapos ng 5 segundo sa React Router, maaari mong gamitin ang setTimeout() function para tawagan ang history.push() method na may gustong ruta bilang argumento.

Halimbawa:
import { useHistory } mula sa "react-router-dom";
const history = useHistory();
setTimeout(() => {
history.push(“/redirectedPage”);
}, 5000);

Kaugnay na mga post:

1 naisip sa "Nalutas: i-redirect gamit ang react router v6"

  1. Pingback: URL

Mag-iwan ng komento