Oftentimes, we want to automatically redirect the user to another page after the user logged in.
In this article, we’ll look at how to automatically redirect the user to another page after the user logged in with React Router.
Automatically Redirect After Login with React Router
We can automatically redirect after login with React Router.
To do that, we get the history object and call push on it.
For instance, we can write:
fetch('/login', {
username,
password
})
.then(response => response.json())
.then(data => {
this.props.history.push("/");
})
We call this.props.history.push to do the redirect.
The prop is available once we pass the component into the withRouter higher-order component.
Set Types on useState React Hook with TypeScript
To set the state of the useState hook, we can pass in a type parameter with the useState function.
For instance, we can write:
const [user, setUser] = useState<IUser>({ name: 'james' });
IUser is an interface that has the name string property.
For a full example, we can write:
import React, { useState, Dispatch } from 'react';
interface IUser {
name: string;
}
const App = () => {
const [user, setUser] = useState<IUser>({ name: 'james' });
const clickHander = (stateSetter: Dispatch<IUser>) => {
stateSetter({name : 'james'});
}
return (
<div>
<button onClick={() => { clickHander(setUser) }}>Change Name</button>
</div>
)
}
setUser has the type Dispatch<IUser> .
Dispatch is from the React package.
The type parameter in Dispatch should match the type we pass into useState .
Conclusion
We can automatically redirect after login with React Router.
To do that, we get the history object and call push on it.