Niestandardowy monit routera React

Jak zaimplementować niestandardowy monit w nawigacji za pomocą routera React-router

Jaka jest potrzeba niestandardowego monitu?

Większość projektów React stosuje system projektowania interfejsu użytkownika dla swoich komponentów. Aby osiągnąć tę samą spójność projektu w całej aplikacji, ponownie wykorzystują komponenty. Jednak aby zablokować nawigację w przypadku niezapisanych danych użytkownika, najczęstszym i najłatwiejszym sposobem zablokowania użytkownikowi nawigowania do różnych tras jest domyślny monit przeglądarki. Ale wyskakujące okienko nie pasuje do twojego komponentu bibliotecznego.

Nie ma oficjalnych dokumentów wyraźnie mówiących o tym, jak używać niestandardowego modalu zamiast domyślnego react-router Prompt .

Rozwiązanie

Aby uzyskać wymagany wynik, należy wykonać kilka prostych kroków. Każdy krok zawiera w 100% działające fragmenty kodu. Możesz go wykorzystać w swoich projektach.

Krok 1

Musimy wyłączyć lub zablokować domyślny monit przeglądarki. Można to zrobić, przekazując puste wywołanie zwrotne do właściwości getUserConfirmationfunkcji BrowserRouter .

Krok 2

Teraz utwórzmy niestandardowy RouterPromptkomponent za pomocą useHistoryzaczepu z biblioteki komponentów projektureact-router-dom i ant dla modalkomponentu.

history.blockPozwala nam blokować away nawigację z bieżącej strony. Przekazanie pustej funkcji lub pustych argumentów do metody block kontynuuje nawigację, jej nie blokuje ani nie przerywa.

useEffectSłuży do obsługi początkowego stanu szybka czy pokazać, czy nie za pomocą whenrekwizytów.

Połączenia zwrotne handleOKi handleCancelsłużą do kontroli potwierdzania i anulowania nawigacji.

Krok 3

Stwórzmy dwa przykładowe komponenty do poruszania się między stronami. Na przykład niech pierwszy składnik będzie, Dashboard.jsxa drugi składnik będzie Home.jsx.

homeSkładnik zawiera nasz własny RouterPromptkomponent. Monit jest wyzwalany przy zmianie strony, a także na podstawie właściwości when. whenProp służy do warunkowo wywołać monit. Na przykład, jeśli whenrekwizyt jest ustawiony na true, monit będzie wyświetlany przy każdym przejściu strony (z trasy domowej do innych tras lub nawigacji do przodu/do tyłu).

Właściwości onOKi onCancelcallback muszą zwracać wartość logiczną, aby można było kontynuować trasę.

Wynik

Wniosek

Możesz użyć modalnej dowolnej biblioteki komponentów, nawet własnego niestandardowego modalnego lub domyślnego monitu przeglądarki. Ale po prostu bądź ostrożny podczas wdrażania history.block.

Postępując zgodnie z powyższymi krokami, możesz osiągnąć pożądane rozwiązanie. Kod działa w 100%. Możesz skopiować fragmenty kodu do swoich aplikacji, aby zaoszczędzić czas.

Bibliografia

  1. https://reactrouter.com/web/api/Hooks/usehistory
  2. https://reactrouter.com/web/api/history

Suggested posts

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.

Systemy projektowe i fale przyszłych zmian

Systemy projektowe i fale przyszłych zmian

Systemy projektowania złapały mnie we właściwym czasie. Od dawna czuję, że poruszam się po świecie projektowania i kodowania, a przy odrobinie doświadczenia przechodzę do przestrzeni bardziej zorientowanej na produkt, umożliwiając łączenie tych światów i nie tylko.

Related posts

Rewolucja w miejscu pracy: najlepsi eksperci omawiają pracę hybrydową i zdalną

Rewolucja w miejscu pracy: najlepsi eksperci omawiają pracę hybrydową i zdalną

W dzisiejszym szybko zmieniającym się krajobrazie biznesowym koncepcja pracy hybrydowej i zdalnej nabrała bezprecedensowego rozpędu. Ponieważ firmy wciąż dostosowują się do zmieniających się potrzeb i oczekiwań swoich pracowników, eksperci z różnych dziedzin zebrali się, aby omówić korzyści, wyzwania i przyszłość tego transformacyjnego sposobu pracy.

Śledź każdego, kto ma tylko numer telefonu | Śledztwo OSINT

Śledź każdego, kto ma tylko numer telefonu | Śledztwo OSINT

Możesz być śledczym OSINT, graczem CTF lub po prostu kimś, kto odbiera połączenia spamowe. Ktoś, kto próbuje zweryfikować numer, który widziałeś w reklamie.

Kłamstwo kowbojskie

Jak megakorporacje sprzedały Amerykanom mocne kłamstwo

Kłamstwo kowbojskie

Jest wspaniale złoty poranek na falistych wzgórzach zachodu, gdy pierwsze promienie słońca oświetlają oszronioną trawę na równinach. Stado spokojnego bydła rasy Angus, czarnego jak smoła i masywne, rysuje się na tle wschodu słońca, gdy zmierza utartym szlakiem do miejsca, które wszyscy dobrze znają; bar śniadaniowy.

Dwa lata projektowania – dobre, złe i brzydkie…

Dwa lata projektowania – dobre, złe i brzydkie…

„Hej, Siri, zagraj w Me Dive autorstwa Olivii Dean”. W maju 2021 rozpocząłem staż w Future Academy Africa w Akure w Nigerii.