#reactjs #typescript #react-router #react-router-dom
#реагирует на #машинописный текст #реагировать-маршрутизатор #реагировать-маршрутизатор-дом
Вопрос:
У меня есть маршрутизатор связи в react, который выглядит так:
lt;Link to={window.location.href}gt;Namelt;/Linkgt;
Но это просто перенаправляет на: http://0.0.0.0:4321?name=applehttp://0.0.0.0:4321?name=apple
Я хочу просто перенаправить на ту же страницу, включая параметры запроса. Я попытался использовать#, но он игнорирует параметры запроса.
В идеале так: http://0.0.0.0:4321?name=apple
Комментарии:
1. В этом нет необходимости
lt;Link gt;
, вы можете использоватьlt;a href gt;
для этого.2.
lt;Linkgt;
предназначен для внутренней навигации, то есть внутри приложения. Я хочу перейти на какую-то другую страницу, которую вы должны использоватьa
.3.
Link
Компонент предназначен для внутренней привязки, не используйте необработанныйlt;a /gt;
тег привязки. Пожалуйста, поделитесь более полным примером кода для того, что вы пытаетесь сделать. Если вы ссылаетесь на страницу, которую вы уже сопоставляете и визуализируете, то, вероятно, вам необходимо реализовать методcomponentDidUpdate
жизненного цикла или использовать один из крючков RRD, или прослушивать изменения в реквизитах маршрута и обрабатывать их соответствующим образом. Однако мы не можем помочь больше, чем это, не видя вашего кода.
Ответ №1:
Вы можете получить доступ к местоположению страницы с useLocation()
помощью from react-router-dom
.
import { useLocation } from "react-router-dom"; . . . let location = useLocation();
Теперь вы можете использовать
lt;Link to={location.pathname}gt;Namelt;/Linkgt;