Saya menggunakan react-router-dom 4.0.0-beta.6 dalam proyek saya. Saya memiliki kode seperti berikut:
<Route exact path="/home" component={HomePage}/>
Dan saya ingin mendapatkan parameter kueri dalam HomePage
komponen. Saya telah menemukan location.search
param, yang terlihat seperti ini ?key=value
:, jadi tidak diurai.
Apa cara yang benar untuk mendapatkan parameter kueri dengan react-router v4?
Jawaban yang diberikan pasti.
Jika Anda ingin menggunakan modul qs daripada query-string (popularitasnya hampir sama), berikut adalah sintaksnya:
The ignoreQueryPrefix pilihan adalah untuk mengabaikan tanda tanya terkemuka.
sumber
Jawaban yang diterima berfungsi dengan baik tetapi jika Anda tidak ingin menginstal paket tambahan, Anda dapat menggunakan ini:
Diberikan
http://www.google.co.in/?key=value
akan kembali
value
sumber
Pendekatan lain yang berguna adalah menggunakan out of the box
URLSearchParams
seperti ini;let { search } = useLocation(); const query = new URLSearchParams(search); const paramField = query.get('field'); const paramValue = query.get('value');
Bersih, mudah dibaca dan tidak membutuhkan modul. Info lebih lanjut di bawah;
sumber
Saya sedang meneliti tentang params untuk react router v4, dan mereka tidak menggunakannya untuk v4, tidak seperti react router v2 / 3. Saya akan meninggalkan fungsi lain - mungkin seseorang akan merasa terbantu. Anda hanya membutuhkan es6 atau javascript biasa.
Selain itu, fungsi ini dapat ditingkatkan
sumber
Eh?
sumber
Saya baru saja membuat ini jadi tidak perlu mengubah seluruh struktur kode (di mana Anda menggunakan kueri dari toko router redux) jika Anda memperbarui untuk mereaksikan router v4 atau lebih tinggi dari versi yang lebih rendah.
https://github.com/saltas888/react-router-query-middleware
sumber
Sangat mudah
gunakan saja kail
useParams()
Contoh:
Router :
Dalam komponen Anda :
sumber
Tanpa membutuhkan paket apa pun:
Kemudian Anda dapat mencapai parameter terkait dengan
params.id
sumber
this.props.match.params
berisi parameter jalur, pertanyaan ini tentang parameter kueri.