de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 Franco
Franco
Question

Jak uzyskać wartość parametru z łańcucha zapytania

Jak mogę zdefiniować trasę w moim pliku routes.jsx, aby przechwycić wartość parametru __firebase_request_key z adresu URL wygenerowanego przez Twitter's single sign on process po przekierowaniu z ich serwerów?

http://localhost:8000/#/signin?_k=v9ifuf&__firebase_request_key=blablabla

Próbowałem z następującą konfiguracją tras, ale :redirectParam nie przechwytuje wspomnianego parametru:

<Router>
  <Route path="/" component={Main}>
    <Route path="signin" component={SignIn}>
      <Route path=":redirectParam" component={TwitterSsoButton} />
    </Route>
  </Route>
</Router>
320 2016-02-12T00:19:13+00:00 3
Uwe Keim
Uwe Keim
Edytowane pytanie 27. maja 2018 в 6:37
Programowanie
reactjs
react-router
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 Christian
Christian
1. czerwca 2016 в 12:15
2016-06-01T12:15:00+00:00
Więcej
Źródło
Edytuj
#29853412

React Router v3

React Router już parsuje lokalizację dla Ciebie i przekazuje ją do Twojego RouteComponent jako rekwizyt. Możesz uzyskać dostęp do części zapytania (po ? w url) poprzez

this.props.location.query.__firebase_request_key

Jeśli szukasz wartości parametrów ścieżki, oddzielonych dwukropkiem (:) wewnątrz routera, są one dostępne poprzez

this.props.match.params.redirectParam

Dotyczy to późnych wersji React Router v3 (nie jestem pewien, które). Starsze wersje routera zostały zgłoszone do użycia this.props.params.redirectParam.

React Router v4 i React Router v5.

React Router v4 nie parsuje już dla Ciebie zapytania, ale możesz uzyskać do niego dostęp tylko poprzez this.props.location.search. Dla powodów zobacz nbeuchat's answer.

Np. z biblioteką query-string zaimportowaną jako qs mógłbyś zrobić

qs.parse(this.props.location.search, { ignoreQueryPrefix: true }).__firebase_request_key

Zobacz ta odpowiedź dla niektórych więcej pomysłów na parsowanie ciągu wyszukiwania.

Dodatkowo, jeśli twój komponent nie jest bezpośrednim dzieckiem Przełącznika musisz użyć withRouter aby uzyskać dostęp do jakichkolwiek rekwizytów dostarczanych przez router.

Ogólne

sugestia nizam.sp' do zrobienia

console.log(this.props)

będzie pomocna w każdym przypadku.

 Christian
Christian
Edytowana odpowiedź 14. maja 2019 в 1:03
GitHub - sindresorhus/query-string: Parse and stringify URL query strings
Parse and stringify URL query strings. Contribute to sindresorhus/query-string development by creating an account on GitHub.
github.com
406
0
 TommyLike
TommyLike
21. czerwca 2016 в 2:18
2016-06-21T02:18:45+00:00
Więcej
Źródło
Edytuj
#29853438

możesz sprawdzić react-router, w prosty sposób, możesz użyć kodu, aby uzyskać parametr zapytania tak długo, jak zdefiniowałeś w swoim routerze:

this.props.params.userId
23
0
 nizam.sp
nizam.sp
15. lutego 2016 в 7:30
2016-02-15T07:30:34+00:00
Więcej
Źródło
Edytuj
#29853406

this.props.params.your_param_name będzie działać.

To jest sposób, aby uzyskać parametry z twojego ciągu zapytania.
Proszę zrobić console.log(this.props); aby zbadać wszystkie możliwości.

5
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
mohidil qodirova
Zarejestrowany 6 godzin temu
2
Jasur Fozilov
Zarejestrowany 19 godzin temu
3
Zuxriddin Muydinov
Zarejestrowany 1 dzień temu
4
Денис Анненский
Zarejestrowany 3 dni temu
5
365
Zarejestrowany 1 tydzień temu
DA
DE
EL
ES
FI
FR
ID
IT
JA
KO
LV
NL
PL
PT
RU
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem