Как вернуться на предыдущую страницу в следующем js, используя следующий / маршрутизатор?

Я использую next js для своего приложения, и у меня возникли проблемы с маршрутизацией на предыдущий маршрут приложения. Мне известно о функции маршрутизатора back (), которая похожа на window.history.back (), я хотел бы вернуться к маршруту при нажатии ссылки, и если предыдущая ссылка не из моего приложения или имеет значение null, по умолчанию я хочу перейти на домашнюю страницу.

Я использовал библиотеки, такие как response-router-last-location, для моего приложения для реагирования, но я хочу посмотреть, есть ли лучшие способы сделать это в следующих js через next / router.

Вот мой пример кода:

 

<div className={styles['icon-container']}>
  <Link  href="/"><a>
     <img src="icon.svg"></img>
  </a></Link>
</div>

 

если я использую router.back () во вводе href, страница автоматически возвращается даже до загрузки, как мне решить эту проблему?

Не могли бы вы добавить дополнительную информацию о варианте использования, т.е. почему вы хотите это сделать. Это поможет людям давать более всесторонние ответы. :)   —  person Aadhit Shanmugam    schedule 16.06.2021

Я не понимаю вашего варианта использования и / или требований, но я думаю, что использование обратной навигации для удержания пользователей в вашем приложении — довольно плохой UX. Хотелось бы думать, что я не одинок, если я случайно зашел в ваше веб-приложение и сразу же попытаюсь отступить и постоянно возвращаться на вашу домашнюю страницу, которую я больше никогда не захочу посещать.   —  person Aadhit Shanmugam    schedule 16.06.2021

Нет, я не угоняю заднюю навигацию! Это настраиваемая кнопка возврата, которая будет присутствовать на моем сайте, чтобы они могли просмотреть сообщение и вернуться к ленте!   —  person Aadhit Shanmugam    schedule 16.06.2021

См. также:  Как написать код с улучшенной реакцией с помощью useMemo
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Aadhit Shanmugam

    <Link> не может выходить за пределы вашего приложения. (но router.back() может)

    Вы не можете использовать router.back() прямо в коде, вам нужно сделать что-то вроде:

    <img onClick={() => router.back()} src="icon.svg" />
    

    <Link> не имеет свойства onClick.

    import { useRouter } from 'next/router'
    
    export default function Page() {
      const router = useRouter()
    
      return (
        <button type="button" onClick={() => router.back()}>
          Click here to go back
        </button>
      )
    }
    

    Источник информации здесь

    Как этот код предотвращает обратную навигацию из приложения и вместо этого перенаправляет на домашнюю страницу? person Aadhit Shanmugam; 16.06.2021

    Не знаю, с роутером этого не сделать. Вам нужно проверить .sessionStorage или .localstorage person Aadhit Shanmugam; 16.06.2021

    позвольте мне посмотреть, сработает ли это в моем случае person Aadhit Shanmugam; 16.06.2021

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: