Well, I was researching how to redirect to another page / component by clicking on a simple button or returning a function and found this simple and easy way:
import { useHistory } from 'react-router-dom';
function app() {
let history = useHistory();
const redirect = () => {
history.push('/your-path')
}
return (
<div>
<button onClick={redirect}>Redirect</button>
</div>
)
}
That simple!
I was struggling for a while because most of the examples were about reaction class components and I thought it prudent to leave that way to those who use react function components.
What other ways do you use to redirect?
Top comments (8)
This is not a good practice. You should use an
<a />
tag or react-router-dom's<Link />
to handle your redirect. Even if you must redirect programatically, it is better to use a link and useevent.preventDefault()
on the click and only then usehistory.push()
.There are two reasons why you should do this. Firstly accessibility. Screen readers won't know that your button can redirect. Anchor tags however get properly announced to users using assistive technology. The second reason is web crawlers won't follow your links and you will not get potential SEO benefits from it.
Thanks for the comment, I forgot to mention that i needed to redirect after logout to Firebase, this snippet code shows more clearly
In this case, do you recommend other approach?
what u say is right. not denying it...but i also think the simple way would come in handy in some cases too. and most practically would be the best option.
thanks : )
You can always use the
<Redirect />
componentdev.to/projectescape/programmatic-...
Thanks for share
Thank you very very much dev... Because I struggle with many concepts finally it's help me lot.. I don't even have account in dev community, I want to tell my thanks to you that's why create my account...
Thank you