NavLink on logo image does not work in React
In this blog I am going to tell how to fix the problem of not getting a working link when a image is inside in NavLink of react router .
For example I was trying to do add this function as an onClick
event in every NavLink
<NavLink onClick={(e)=>{IfSamePathThenScrollToTop(e)}} to="/" className=" navbar-brand ">
<img src={causalLogo} className="causalLogo img-fluid" alt="CausalFunnel Logo"/>
</NavLink>
function IfSamePathThenScrollToTop(e)
{
console.log(e.target);
if (window.location.pathname === e.target.pathname)
{
window.scrollTo(0, 0);
}
return null;
}
export default IfSamePathThenScrollToTop
the problem which I was getting was that the image element was being printed as the target in the console instead of an anchor tag which means my function was trying to access pathname
property of an img
element which didn't even exist .
Solution
I changed target
to currentTarget
target vs currentTarget
target
means the element which fired the eventListener.
currentTarget
means the element to which the eventListener is attached.
Hence I was able to get the anchor element printed in the console.