Last updated: Apr 7, 2024
Reading timeยท3 min

To redirect to another page on button click in React:
useNavigate() hook, e.g. const navigate = useNavigate();.navigate() function, passing it the path - navigate('/about').navigate() function lets us navigate programmatically.import {Routes, Route, useNavigate} from 'react-router-dom'; export default function App() { const navigate = useNavigate(); const navigateToContacts = () => { // ๐๏ธ Navigate to /contacts navigate('/contacts'); }; const navigateHome = () => { // ๐๏ธ Navigate to / navigate('/'); }; return ( <div> <div> <button onClick={navigateHome}>Home</button> <hr /> <button onClick={navigateToContacts}>Contacts</button> <Routes> <Route path="/contacts" element={<Contacts />} /> <Route path="/" element={<Home />} /> </Routes> </div> </div> ); } function Home() { return <h2>Home</h2>; } function Contacts() { return <h2>Contacts</h2>; }

The useNavigate hook returns a function that lets us navigate programmatically, e.g. after a form is submitted or a button is clicked.
navigate function can be passed a delta, e.g. -1 to go one page back, 1 to go one page forward, or a path -navigate('/contacts').The function also takes an options object.
const navigateToContacts = () => { navigate('/contacts', {replace: true}); };
When the replace property on the options object is set to true, the
current entry in the history stack gets replaced with the new one.
For example, this is useful when a user logs in because you don't want them to be able to click the back button and get back to the login page.
It is also useful if you have a route that redirects users to a different page, because you don't want users to click the back button and get redirected again.
Router componentTo use the useNavigate hook in your application, make sure the App component
in your index.js file is wrapped in a Router.
import {createRoot} from 'react-dom/client'; import App from './App'; import {BrowserRouter as Router} from 'react-router-dom'; const rootElement = document.getElementById('root'); const root = createRoot(rootElement); // ๐๏ธ Wrap the App in a Router root.render( <Router> <App /> </Router> );

Router component is in your index.js file because that's the entry point of your React application.Once your entire app is wrapped with a Router component, you can use any of
the hooks from the React router package anywhere in your components.
You can learn more about the related topics by checking out the following tutorials: