{Link} не приводит к правильному URL в reactjs

#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>