на ту же страницу, включая параметры запроса

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