W moim projekcie używamreak-router-dom 4.0.0-beta.6. Mam następujący kod:
<Route exact path="/home" component={HomePage}/>
Chcę uzyskać parametry zapytania w HomePage
komponencie. Znalazłem location.search
parametr, który wygląda ?key=value
tak:, więc nie został przeanalizowany.
Jaki jest właściwy sposób uzyskiwania parametrów zapytania za pomocą routera React-router v4?
Podana odpowiedź jest solidna.
Jeśli chcesz użyć modułu qs zamiast ciągu zapytania (mają one podobną popularność), oto składnia:
Opcja ignoreQueryPrefix służy do ignorowania wiodącego znaku zapytania.
źródło
Innym przydatnym podejściem może być użycie tego po wyjęciu z pudełka
URLSearchParams
;let { search } = useLocation(); const query = new URLSearchParams(search); const paramField = query.get('field'); const paramValue = query.get('value');
Czysty, czytelny i nie wymaga modułu. Więcej informacji poniżej;
źródło
Zaakceptowana odpowiedź działa dobrze, ale jeśli nie chcesz instalować dodatkowego pakietu, możesz użyć tego:
Dany
http://www.google.co.in/?key=value
wróci
value
źródło
Szukałem parametrów dla routera reagującego v4, a oni nie używali go dla wersji 4, a nie jak router reagujący v2 / 3. Zostawię inną funkcję - może komuś się to przyda. Potrzebujesz tylko es6 lub zwykłego javascript.
Tę funkcję można również ulepszyć
źródło
Ech?
źródło
Właśnie to zrobiłem, więc nie musisz zmieniać całej struktury kodu (gdzie używasz zapytania ze sklepu routera Redux), jeśli aktualizujesz, aby reagować na router v4 lub nowszy z niższej wersji.
https://github.com/saltas888/react-router-query-middleware
źródło
Bardzo łatwe
po prostu użyj haka
useParams()
Przykład:
Router :
W twoim składniku :
źródło
Bez potrzeby jakiegokolwiek pakietu:
Następnie możesz dotrzeć do powiązanych parametrów za pomocą
params.id
źródło
this.props.match.params
zawiera parametry ścieżki, to pytanie dotyczy parametrów zapytania.