DEV Community

loading...

Discussion on: A simple way to redirect react-router-dom

Collapse
rohanfaiyazkhan profile image
Rohan Faiyaz Khan

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 use event.preventDefault() on the click and only then use history.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.

Collapse
ajay_vasudev profile image
Ajay Vasudev

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.

Collapse
ebraimcarvalho profile image
Ebraim Carvalho Author

Thanks for the comment, I forgot to mention that i needed to redirect after logout to Firebase, this snippet code shows more clearly

const logout = () => {
    firebase.logout()
      .then(result => {
        localStorage.removeItem('email')
        history.push('/login')
      })
      .catch(error => console.log('Error: ', error))
  }

In this case, do you recommend other approach?