Saya tidak bisa menemukan cara memperbarui parameter kueri dengan react-router tanpa menggunakan <Link/>
. hashHistory.push(url)
tampaknya tidak mendaftarkan parameter kueri, dan sepertinya Anda tidak dapat meneruskan objek kueri atau apa pun sebagai argumen kedua.
Bagaimana Anda mengubah url dari /shop/Clothes/dresses
menjadi /shop/Clothes/dresses?color=blue
di react-router tanpa menggunakan <Link>
?
Dan apakah suatu onChange
fungsi benar-benar satu-satunya cara untuk mendengarkan perubahan kueri? Mengapa perubahan kueri tidak secara otomatis terdeteksi dan bereaksi terhadap perubahan parameter?
reactjs
react-router
claireablani.dll
sumber
sumber
Jawaban:
Di dalam
push
metodehashHistory
, Anda dapat menentukan parameter kueri Anda. Misalnya,atau
Anda dapat melihat repositori ini untuk contoh tambahan tentang penggunaan
history
sumber
router.push({ pathname: '/path', state: { color: 'blue', size: 10 }, });
Contoh menggunakan paket react-router v4, redux-thunk dan react-router-redux (5.0.0-alpha.6).
Ketika pengguna menggunakan fitur pencarian, saya ingin dia dapat mengirim tautan url untuk permintaan yang sama ke rekan kerja.
sumber
react-router-redux
tidak digunakan lagi<Redirect>
tag, tautan ke halaman dokumenwithReducer
HOC yang akan memberi Andahistory
prop. Dan kemudian Anda bisa larihistory.push({ search: querystring }
.react-router-redux
, Anda dapat menggunakanconnected-react-router
yang sudah tidak digunakan lagi.Jawaban John benar. Ketika saya berurusan dengan params, saya juga membutuhkan
URLSearchParams
antarmuka:Anda mungkin juga perlu membungkus komponen Anda dengan
withRouter
HOC misalnya.export default withRouter(YourComponent);
.sumber
withRouter
adalah HOC, bukan dekoratorsumber
Dari DimitriDushkin di GitHub :
atau
sumber
Menggunakan modul query-string adalah yang disarankan saat Anda membutuhkan modul untuk mengurai string kueri Anda dengan mudah.
Di sini, saya mengarahkan kembali ke klien saya dari server Node.js setelah otentikasi Google-Passport berhasil, yang mengalihkan kembali dengan token sebagai parameter kueri.
Saya menguraikannya dengan modul kueri-string, menyimpannya dan memperbarui parameter kueri di url dengan push dari react-router-redux .
sumber
Saya lebih suka Anda menggunakan fungsi di bawah ini yaitu
ES6
gaya:sumber
Itu juga bisa ditulis seperti ini
sumber