#javascript #reactjs #react-router
#javascript #reactjs #реагировать-маршрутизатор
Вопрос:
Я изучаю Reactjs, и возникает проблема, когда я пытаюсь использовать {Link} для перехода на внешние веб-сайты.
<Link to={repo.html_url}>
{repo.name}
</Link>
Допустим, repo.html_url является
https://github.com/ningmeng7998/SmartER-Project-Android-Frontend .
Вместо того, чтобы перенаправить меня на этот URL, он приводит меня к http://localhost:3000/profile/https://github.com/ningmeng7998/SmartER-Project-Android-Frontend , который добавляет localhost перед ним.
Как решить эту проблему?
Комментарии:
1. Основной способ, позволяющий пользователям перемещаться по вашему приложению
Ответ №1:
Я предполагаю, что вы используете компонент Link маршрутизатора React, поскольку он не является частью vanilla React.
В настоящее время маршрутизаторы React Router Link
не поддерживают внешние URL-адреса, они предназначены только для внутренней навигации в вашем приложении. Вы захотите использовать стандартный тег привязки HTML. Попробуйте это:
<a href={repo.html_url}>{repo.name}</a>
Есть некоторые дискуссии вокруг вопроса о Link
С с поддержкой внешних URL-адресов происходит здесь , Если вы хотите узнать больше или оставаться в курсе событий.
Другим решением является реализация вашей собственной оболочки вокруг, Link
которая обрабатывает логику (и в конце выдает <Link>
компонент для внутренних маршрутов или <a>
тег для внешних URL).
Комментарии:
1. Вот почему. Понял. Большое спасибо!
2. @Ning рассмотрите возможность принятия в качестве ответа, если что-то решило вашу проблему
Ответ №2:
Для внешних ссылок просто используйте a
tag! as <Link>
используется только для внутренних маршрутов. Как вы можете видеть в документах, которые сами React Router использовали a
теги для внешней ссылки вместо Link
.
<a href={repo.html_url}>
{repo.name}
</a>