J'ai le suivant:
Comment puis-je me débarrasser du soulignement bleu? Le code est ci-dessous:
<Link to="first"><MenuItem style={{paddingLeft: 13, textDecoration: 'none'}}> Team 1 </MenuItem></Link>
Le composant MenuItem provient de http://www.material-ui.com/#/components/menu
Toute idée ou orientation serait grandement appréciée. Merci d'avance.
Je vois que vous utilisez des styles en ligne. textDecoration: 'none'
est utilisé dans enfant alors qu'en fait, il devrait être utilisé dans <Link>
en tant que tel:
<Link to="first" style={{ textDecoration: 'none' }}>
<MenuItem style={{ paddingLeft: 13 }}>Team 1</MenuItem>
</Link>
<Link>
renverra essentiellement une balise <a>
standard, raison pour laquelle nous appliquons la règle textDecoration
à cet emplacement.
J'espère que ça aide
Si vous utilisez styled-components
, vous pouvez faire quelque chose comme ceci:
import React, { Component } from 'react';
import { Link } from 'react-router-dom';
import styled from 'styled-components';
const StyledLink = styled(Link)`
text-decoration: none;
&:focus, &:hover, &:visited, &:link, &:active {
text-decoration: none;
}
`;
export default (props) => <StyledLink {...props} />;
Vous pouvez ajouter style={{ textDecoration: 'none' }}
dans votre composant Link
pour supprimer le soulignement. Vous pouvez également ajouter plus de css
dans le bloc style
, par exemple. style={{ textDecoration: 'none', color: 'white' }}
.
<h1>
<Link style={{ textDecoration: 'none', color: 'white' }} to="/getting-started">
Get Started
</Link>
</h1>
Travaillant pour moi, il suffit d’ajouter className="nav-link"
et activeStyle{{textDecoration:'underline'}}
<NavLink className="nav-link" to="/" exact activeStyle=
{{textDecoration:'underline'}}>My Record</NavLink>
// CSS
.navigation_bar > ul > li {
list-style: none;
display: inline;
margin: 2%;
}
.link {
text-decoration: none;
}
// JSX
<div className="navigation_bar">
<ul key="nav">
<li>
<Link className="link" to="/">
Home
</Link>
</li>
</ul>
</div>
Je pense que la meilleure façon d'utiliser le lien react-router-dom dans un MenuItem (et d'autres composants de MaterialUI tels que des boutons) est de passer le lien dans le prop
<Menu>
<MenuItem component={Link} to={'/first'}>Team 1</MenuItem>
<MenuItem component={Link} to={'/second'}>Team 2</MenuItem>
</Menu>
vous devez passer le chemin de la route dans l'accessoire 'à' du "MenuItem" (qui sera transmis au composant Link). De cette façon, vous n'avez pas besoin d'ajouter de style car le style MenuItem sera utilisé.
Il y a l'approche nucléaire qui est dans votre App.css (ou contrepartie)
a{
text-decoration: none;
}
qui empêche le soulignement pour toutes les balises <a>
qui est la cause première de ce problème
Ce qui a fonctionné pour moi est la suivante:
<Link to="/" style={{boxShadow: "none"}}>
Pour développer la réponse de @ Grgur , si vous consultez l'inspecteur, vous constaterez que l'utilisation de composants Link
leur attribue la valeur de couleur prédéfinie color: -webkit-link
. Si vous ne voulez pas que cela ressemble à un lien hypertexte par défaut, vous devrez le remplacer par la variable textDecoration
.
Il existe également un autre moyen de supprimer correctement le style du lien. Vous devez lui donner le style de textDecoration='inherit'
et color='inherit'
vous pouvez soit ajouter ceux-ci en tant que style à la balise link comme:
<Link style={{ color: 'inherit', textDecoration: 'inherit'}}>
ou pour le rendre plus général, créez simplement une classe css comme:
.text-link {
color: inherit;
text-decoration: inherit;
}
Et puis juste <Link className='text-link'>