Я использую 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
<Link>
не может выходить за пределы вашего приложения. (ноrouter.back()
может)Вы не можете использовать
router.back()
прямо в коде, вам нужно сделать что-то вроде:<Link>
не имеет свойства onClick.Источник информации здесь
Как этот код предотвращает обратную навигацию из приложения и вместо этого перенаправляет на домашнюю страницу? — person Aadhit Shanmugam; 16.06.2021
Не знаю, с роутером этого не сделать. Вам нужно проверить .sessionStorage или .localstorage — person Aadhit Shanmugam; 16.06.2021
позвольте мне посмотреть, сработает ли это в моем случае — person Aadhit Shanmugam; 16.06.2021