Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Usar o NavLink

Com esse componente do React-Router-DOM, podemos facilmente criar condições para renderizar classes e componentes filhos quando a url da prop to do NavLink está ativa.

Exemplo do código da aula usando tal componente:

import styles from "./Navbar.module.scss";
import { ReactComponent as Logo } from "../../assets/logo.svg";
import classNames from "classnames";
import { RiShoppingCart2Line, RiShoppingCartFill } from "react-icons/ri";
import Busca from "../Busca";
import { NavLink } from "react-router-dom";

const iconeProps = {
  color: "white",
  size: 24,
};

export default function Navbar() {
  return (
    <nav className={styles.nav}>
      <Logo className={styles.logo} />
      <div className={styles.links}>
        <div>
          <NavLink
            to="/"
            className={({ isActive }) =>
              classNames(styles.link, {
                [styles.selected]: isActive,
              })
            }
          >
            Página inicial
          </NavLink>
        </div>
      </div>
      <div className={styles.busca}>
        <Busca />
      </div>
      <div className={styles.icones}>
        <NavLink to="/carrinho">
          {({ isActive }) =>
            isActive ? <RiShoppingCartFill {...iconeProps} /> : <RiShoppingCart2Line {...iconeProps} />
          }
        </NavLink>
      </div>
    </nav>
  );
}
1 resposta
solução!

Oi Levi, tudo bem?

Muito obrigada por compartilhar com a gente essa sugestão de código com o React-Router-DOM. É sempre ótimo ver a comunidade Alura colaborando e contribuindo para o aprendizado de todos.

Espero que essa sugestão possa ajudar outros alunos também, e agradeço novamente pela sua participação no aprendizado em grupo.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software