How to navigate programmatically in React Router
In this tutorial, we are going to learn about how to navigate programmatically in React Router by using the useHistory( ) hook.
useHistory() Hook
React router offers us the useHistory() hook by using that we can navigate a user programmatically from one route to another route in functional components.
Example:
import React from 'react';
import { useHistory } from "react-router-dom";
function HomeButton() {
const history = useHistory();
function handleClick() {
history.push("/home"); }
return (
<button type="button" onClick={handleClick}>
Go to home </button>
);
}In the above example, we first imported the useHistory() hook from the react-router-dom package then we initialized the useHistory() inside the HomeButton component.
The useHistory() hook has push method which accepts route as a first argument, so that we passed /home route to the push() method inside a handleClick() function.
Now, if we click on a Go to home button user will programmatically navigate to /home route.
If you want to navigate programmatically inside class-based components the push() method is available in this.props property.
Example:
import React,{Component} from 'react';
class App extends Component{
gotoHome = () => {
this.props.history.push('/') }
render() {
return (
<div>
<button onClick={this.gotoHome}>Home</button> </div>
)
}
}
export default App;

