Проблема с объединением ссылок Nextjs

У меня проблема с компонентом Next / Link. Моя проблема возникает, когда пользователь переходит на страницу сведений о продукте. На домашней странице у меня есть 3 компонента ссылок, которые переводят пользователя либо на domain.com/headphones || domain.com/earphones || domain.com/speakers. Теперь на этих страницах пользователь может просмотреть желаемый продукт, который ведет на страницу с динамической информацией о продукте. На странице сведений о продукте у меня есть ровно 3 компонента ссылок с домашней страницы, которые изначально перенаправляют пользователя на / наушники || / наушники || /компьютерные колонки. Вот тут-то и проявляется ошибка. URL объединяется и приводит меня на страницу 404.

Если пользователь находится в domain.com/speakers/productId и нажимает, например, на компонент ссылки для наушников, URL-адрес теперь становится domain.com/speakers/headphones ... тогда как на самом деле он должен просто вернуть пользователя на domain.com/headphones..

Я попытался использовать опору replace в компоненте ссылки, а также router.push

Любые советы приветствуются

      const LinkCard = (props) => {
  return (
    <Link href={props.id}>
      <li id={props.id} className={styles.linkContainer}>
        <Image
          src={props.src}
          width={200}
          height={200}
          objectFit="cover"
          className={styles.img}
        />
        <h2>{props.title}</h2>
        <div>
          <p>Shop</p>
          <ArrowSVG />
        </div>
      </li>
    </Link>
  );
};

export default LinkCard;


1 ответ

Проблема в том, что когда вы перенаправляете с помощьюheadphones, Next.js просто объединяет ссылки.

Вместо этого вам нужно передать целевой URL-адрес в href, например/headphones. Таким образом, вы можете перенаправить пользователя наdomain.com/headphones

Другие вопросы по тегам