3
respostas

[Bug] Meu link não alterna a classe dinamicamente

Prof, boa tarde, meu link não está trocando dinamicamente Barra de linkse eu não sei o motivo menulink.jsx

import React from 'react'
import Styles from './MenuLink.module.css'
import { Link, useLocation } from 'react-router-dom'

export default function MenuLink({children, to}) {
   const localizacao = useLocation();
    return (
      <nav>
        <Link 
            to={to}
            className={`
               ${Styles.link}
               ${localizacao.pathname === to ? Styles.linkDestacado : Styles.Link}
            `}
         >
            {children}
        </Link>
      </nav>

  )
}

Menu.jsx

import React from 'react'
import Styles from './Menu.module.css'
import MenuLink from './MenuLink';
import {AiFillGithub, AiFillLinkedin} from 'react-icons/ai'
import { Link, useLocation } from 'react-router-dom';
export default function Menu() {
   const localizacao = useLocation();
   return (
      <nav className={Styles.navegacao}>
        <MenuLink to="/">
            Inicio
         </MenuLink>
        <MenuLink to="/sobremim">
            Sobre mim
         </MenuLink>

        <Link className={`
            ${Styles.link}
            ${localizacao.pathname === '/' ?Styles.linkDestacado :""}
            `} to="https://github.com/IsraelHamdan">    
            <AiFillGithub color='#000' size={30}/>
         </Link>
         <Link className={`Styles.link`} to="https://www.linkedin.com/in/israel-hamdan/">
            <AiFillLinkedin color='#0e76a8' size={30}/>
         </Link>
      </nav>
  )
}
3 respostas

Eu tomei a liberdade de usar outras bibliotecas do react como o React Icons pra customizar a pagina do meu jeito, pq eu quero fazer outro projeto com ela

Provavelmente esse erro esteja acontecendo porque você está passando localiza.pathname para os icones de githun e linkedin

Tive o mesmo erro. Corrigi esse erro parcialmente inserindo mais uma condição no className:

{ children }

Funciona apenas para a página Início. Para funcionar para outras, sugiro que se crie uma função para fazer uma verificação em cada url e compará-la ao children passado