by Sai gowtham

React Router - How to disable the Link

In this tutorial, we are going to learn about how to disable the link in React router with the help of examples.

Consider, that we have the Link in our React app:

import  React from "react";
import {Link} from 'react-router-dom';

function App {
    return (
      <Link to='/support' >Support us</Link>
    );
}

export default App;

To disable a link in react router, add the pointerEvents: "none" to the <Link> component style property.

Here is an example:

import  React from "react";
import {Link} from 'react-router-dom';

function App {
    return (
      <Link to='/support' style={{pointerEvents: "none"}} >
        Support us
      </Link>
    );
}

export default App;

When we set a pointerEvents property to a value "none" it disables the link and doesn’t respond to any cursor or touch events.

If you’re using the CSS class names, you can add the pointer-events: none to the Link component CSS class name.

import  React from "react";
import {Link} from 'react-router-dom';

function App {

    return (
      <Link to='/support' className="disable-link" >
        Support us
      </Link>
    );
}

export default App;
.disable-link{
    pointer-events: none;
}

We can disable the link in React router, by calling a preventDefault() method on the event object inside the onClick event.

The event.preventDefault() method prevents the browser default actions, so it also disables the link.

Here is an example:

import  React from "react";
import {Link} from 'react-router-dom';

function App {

    return (
     <div>
       <Link to='/support' onClick={(e)=> e.preventDefault()} >
        Support us
      </Link>
     </div>
    );
}
export default App;

We can also disable the link conditionally when a particular condition is active.

Here is an example:

import  React from "react";
import {Link} from 'react-router-dom';

function App {
 const [active, setActive] = useState(false);

    return (
     <div>
     {active
     ? <Link to='/support' OnClick={(e)=> e.preventDefault()} >
        Support us
      </Link>
     :  <Link to='/support'>Support us</Link>
     }
     </div>
    );
}
export default App;

In the above example, we have used the ternary operator to render two different links, one is a disabled link and one is an active link.

{active
  ? <Link to='/support' OnClick={(e)=> e.preventDefault()} >
       Support us
     </Link>
  :  <Link to='/support'>Support us</Link>
}

If the active state is true it renders the first link otherwise, it renders the second link.

Css Tutorials & Demos

How rotate an image continuously in CSS

In this demo, we are going to learn about how to rotate an image continuously using the css animations.

How to create a Instagram login Page

In this demo, i will show you how to create a instagram login page using html and css.

How to create a pulse animation in CSS

In this demo, i will show you how to create a pulse animation using css.

Creating a snowfall animation using css and JavaScript

In this demo, i will show you how to create a snow fall animation using css and JavaScript.

Top Udemy Courses

JavaScript - The Complete Guide 2022 (Beginner + Advanced)
JavaScript - The Complete Guide 2022 (Beginner + Advanced)
116,648 students enrolled
52 hours of video content
$14.99 FROM UDEMY
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
631,582 students enrolled
49 hours of video content
$24.99 FROM UDEMY
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
203,937 students enrolled
31.5 hours of video content
$14.99 FROM UDEMY