NextJS добавляет стиль динамической активной ссылке

У меня более 5 категорий, в которых есть разные продукты. Итак, в папке с моими страницами у меня есть файл с именем [...slug].js. Все эти URL-адреса имеют разные имена;

Для Ex это мой URL;

  • / телефоны
  • / ноутбуки
  • /ТВ

..и я хочу добавить имена классов к этим ссылкам, когда они активны, чтобы я мог добавить к ним некоторый стиль.

        import Link from 'next/link';
  import { useRouter } from 'next/router';

  export const Header = () => {
    const router = useRouter();

    return (
      <header>
        <Link href="/phones">
          <a className={router.pathname == "/phones" ? "active" : ""}>
            Phones
          </a>
        </Link>
        <Link href="/laptops">
          <a className={router.pathname == "/laptops" ? "active" : ""}>
            Laptops
          </a>
        </Link>
        <Link href="/tv">
          <a className={router.pathname == "/tv" ? "active" : ""}>
            TV
          </a>
        </Link>
      </header>
    )
  }

Однако, когда я проверяю router.pathname при переходе по этим ссылкам, URL-адрес отображается как /[...slug]. Есть ли другой способ получить фактическое имя URL-адреса для динамических URL-адресов на NextJS

1 ответ

Вам нужен путь, показанный в браузере, включая параметры поиска,

        const { data: genreData } = useGetGenreQuery({});
  const { asPath } = useRouter();


  <Link
      key={key}
      className={asPath == `/genre/${item.id}` ? "active" : ""}
      href={`/genre/${item.id}`}>
      <li className="cursor-pointer"> {item.name} </li>
  </Link>
Другие вопросы по тегам