Router React berhenti bekerja setelah menambahkan createBrowserHistory dengan saga

Saya sedang mempelajari React.js dan saya mengalami masalah berikut:

Aplikasi reaksi saya berhenti berfungsi setelah menambahkan createBrowserHistory dengan Saga.

Pada dasarnya, saya ingin mengarahkan pengguna ke Halaman Keranjang (/ keranjang) ketika saya mengklik tombol Tambahkan ke Keranjang.

Contoh:

Itu adalah halaman beranda:

masukkan deskripsi gambar di sini

Saat saya mengeklik tombol Tambahkan ke Keranjang, ia menavigasi ke rute /keranjang. Namun, itu tidak menunjukkan apa pun dan tidak ada kesalahan di konsol.

masukkan deskripsi gambar di sini

Saya telah membuat perubahan berikut pada kode saya:

Paket riwayat tambahan:

masukkan deskripsi gambar di sini

File riwayat yang dibuat:

masukkan deskripsi gambar di sini

File App.js diubah:

masukkan deskripsi gambar di sini

File saga diubah. Saya berharap untuk menavigasi ke rute /cart setelah melakukan beberapa pekerjaan...

masukkan deskripsi gambar di sini

Masalahnya ada di sini! Saya ingin memperbaiki masalah di file saga saya saja.

Saya telah membuat Permintaan Tarik di sini, untuk mereproduksi kesalahan. Jangan ragu untuk melihat ini.

https://github.com/willianfalbo/online-shoes-app/pull/1

Saya bersedia memberi hadiah kepada seseorang yang menciptakan PR untuk saya. Saya juga akan menerima jawaban Anda di sini!


person Willian    schedule 22.08.2020    source sumber
comment
Mengapa Anda memerlukan createBrowserHistory riwayat? Ketika redux-saga Anda melakukan panggilan api, dan setelah berhasil, bukankah lebih baik mengembalikan kontrol ke komponen React Anda untuk diproses nanti. Artinya, Anda dapat dengan mudah mengubah rute di React component alih-alih di sagas yang akan meniadakan penggunaan createBrowserHistory sejak awal..   -  person Prateek Thapa    schedule 22.08.2020
comment
Coba ubah ke yield call(history.push, '/cart');   -  person Aleksey L.    schedule 22.08.2020
comment
@AlekseyL., Saya sudah mencoba cara ini tetapi tidak berhasil.   -  person Willian    schedule 23.08.2020
comment
@PrãtéékThápá, apakah Anda punya contohnya?   -  person Willian    schedule 23.08.2020
comment
Anda dapat mengujinya dengan MemoryHistory dan melihat apakah masih rusak dalam konteks tersebut. Bukan solusi, tapi mungkin menjelaskan sesuatu   -  person Slbox    schedule 04.09.2020
comment
Terima kasih @Slbox! Apakah Anda memiliki contoh tautan?   -  person Willian    schedule 04.09.2020
comment
@Willian alih-alih mengimpor createBrowserHistory, impor createMemoryHistory. Kami masih di [email protected], tapi menurut saya ini masih bisa berfungsi di 5.x.   -  person Slbox    schedule 04.09.2020


Jawaban (1)


Sepertinya versi react-router 5x hanya kompatibel dengan history.4x.

Menurunkan versi riwayat ke 4.2.0 berhasil.

person Prateek Thapa    schedule 23.08.2020
comment
@Willian Saya sudah mengirimkan PR. - person Prateek Thapa; 04.09.2020
comment
Fantastis kawan! Terima kasih telah membuat PR untuk saya! Kerja bagus. Saya tidak dapat memberikan bounty kepada Anda sekarang, karena saya harus menunggu 24 jam untuk melakukannya. Ngomong-ngomong, saat saya menerima jawaban Anda, StackOverflow memberi Anda hadiah secara otomatis. Bersulang - person Willian; 04.09.2020
comment
Saya hanya penasaran. Apakah Anda membuatnya untuk produksi atau sekadar aplikasi latihan? - person Prateek Thapa; 04.09.2020
comment
Ini hanya untuk latihan saat saya mulai mempelajari React bulan lalu. Apakah anda memiliki saran? Bantuan apa pun yang Anda terima =) - person Willian; 04.09.2020
comment
Saya merasa Anda melakukan hal-hal yang berlebihan. Saya telah menulis beberapa aplikasi produksi di React. Saya rasa Anda tidak memerlukan sagas untuk memulai. Redux thunk akan berhasil. Selain itu, aplikasi Anda juga dapat menggunakan API Konteks daripada redux. Singkatnya, aplikasi Anda dapat puas dengan penggunaan Context API. Tidak perlu redux, redux-sagas, dan immer. - person Prateek Thapa; 04.09.2020
comment
Itu tip yang bagus, kawan! Saya cukup kecewa menggunakan Redux/Saga. Menurut saya, ini terlalu rumit dan rumit. Pastinya, saya akan mulai mempelajari Context API. Apakah Anda merekomendasikan kursus online? - person Willian; 04.09.2020
comment
Anda dapat melihat ini. Ini tidak rumit, Anda cukup melakukannya membaca dokumen. - person Prateek Thapa; 04.09.2020
comment
Terima kasih kawan! - person Willian; 05.09.2020
comment
Terima kasih untuk ini - baru saja menyelamatkan hidupku :) - person Ege; 03.03.2021