New version of react-router-dom (v6.0.0) doesn't identify "Redirect". What is the alternative for it?
Redirect and Navigate Component With the release of React Router v6, the Redirect component was removed and replaced with the Navigate component, which operates just as the Redirect component does by taking in the to prop to enable you redirect to the page you specify.
To redirect to another page on button click in React: Use the useNavigate() hook, e.g. const navigate = useNavigate(); . Call the navigate() function, passing it the path - navigate('/about') .
Redirecting alone is done via the Navigate
component with the replace
prop specified.
<Navigate replace to="/" />
If you want to replicate RRDv5's Redirect
component redirecting from a path then you need to combine with a Route
.
<Route path="/somePath" element={<Navigate replace to="/" />} />
If you aren't server rendering your app you can still redirect on the initial render in the client like this:
import { Routes, Route, Navigate } from "react-router-dom";
function App() {
return (
<Routes>
<Route path="/home" element={<Home />} />
<Route path="/" element={<Navigate replace to="/home" />} />
</Routes>
);
}
In the above example, when someone visits /
, they will automatically be redirected to /home
, same as before.
Please note however that this won't work when server rendering because the navigation happens in a React.useEffect()
.
Have a look at Redirects in React Router v6 for some deeper details.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With