Teraz spojrzeliśmy na podstawową nawigację z nawigacją, a nawigacja jest najważniejszym narzędziem,
ale tak naprawdę, gdy jesteś wewnątrz ekranu, komponentu załadowanego za pomocą nawigatora stosów,
masz alternatywne opcje nawigacji.
Możesz także użyć wypychania zamiast nawigacji, chociaż nie bierze on obiektu JavaScript, ale zamiast tego bierze tutaj
tylko nazwę trasy, w
tym przypadku kategorię posiłków jako pierwszy argument, a dzięki temu uzyskasz takie samo zachowanie jak poprzednio.
Pytanie oczywiście brzmi, dlaczego miałbyś to wykorzystać.
Po pierwsze, jest nieco krótszy niż nawigacja, ponieważ nie mijasz obiektu,
ale to nie
jest główny powód, zamiast tego użycie push tutaj może być przydatne, jeśli chcesz przejść, powiedzmy, stronę, na której już jesteś.
Teraz pokażę ci, co mam na myśli.
Jeśli to cofnę i przejdę do kategorii tutaj, to do ekranu kategorii,
który jest ekranem, w którym już jestem. Jeśli zrobię to z nawigacją, zobaczysz, że nic
się nie stanie, jeśli dotknę tego.
Teraz, jeśli użyję push i dlatego po prostu przekażę kategorie jako mój pierwszy argument, ponieważ tak działa push, zobaczysz, że teraz
to działa i mogę przejść do tego samego ekranu w kółko i jest on przekazywany
do tego samego stosu ponad i jeszcze raz.
Teraz oczywiście możesz się zastanawiać, dlaczego miałbym chcieć przesunąć ekran, na którym już jestem.
Teraz w wielu aplikacjach możesz tego nie potrzebować, ale załóżmy, że tworzysz aplikację taką jak Dropbox, w której
masz foldery, między
którymi użytkownicy mogą się poruszać, jeśli
jesteś w folderze, chcesz przejść do innego folderu.
Teraz każdy folder jest technicznie tym samym ekranem folderów, z załadowaną inną zawartością. W takim przypadku możesz chcieć przejść z folderu A
do B, który używa tego samego komponentu, tego samego ekranu na końcu, ale z inną zawartością,
w takim przypadku możesz użyć push, aby nadal móc przesuwać nowy ekran, który to ten sam
ekran na stosie i załaduj ten sam ekran z inną zawartością, to byłby jeden scenariusz, w którym
możesz tego potrzebować. W tej aplikacji
nie jest nam potrzebna, więc nie ma potrzeby wypychania, ale masz to w
scenariuszach, w
których nawigacja nie zabrałaby Cię do
tego ekranu, push zawsze będzie w środku nawigatora stosu. Tutaj jednak cofnę to do nawigacji, która pobiera obiekt o nazwie trasy,
który następnie wskazuje kategorie, ponieważ tutaj absolutnie nie potrzebujemy pushowania, to znaczy kategorii posiłków. Tak będzie w przypadku tej aplikacji, teraz
masz także
inne wyraźne opcje nawigacji, powiedzmy
na ekranie kategorii posiłków, chcesz wrócić.
Oczywiście możemy wrócić za pomocą tego przycisku wstecz, ale nie jest to nietypowe, że
w niektórych aplikacjach masz coś innego, co użytkownicy mogą zrobić tam, gdzie chcesz je zabrać,
na przykład powiedzmy jesteś na stronie, na której możesz skonfigurować konfigurację,
a kiedy klikniesz przycisk Zapisz, chcesz zapisać tę konfigurację, a także opuścić ekran.
Teraz w tym scenariuszu możesz chcieć ręcznie uruchomić nawigację wsteczną i nie czekaj, aż użytkownik naciśnie
przycisk Wstecz, ponieważ może to zmusić użytkownika do pierwszego naciśnięcia przycisku Zapisz, a następnie
do ręcznego powrotu, co nie jest najlepsze wrażenia użytkownika.
Więc tutaj trochę to zasymuluję, po prostu przycisk powrotu w tym miejscu na ekranie, więc w
naszym kodzie jsx, a kiedy go naciśniemy, chcę móc wrócić, ręcznie chcę
uruchomić nawigację wstecz.
Możesz to zrobić za pomocą rekwizytu nawigacyjnego, ponieważ masz tam metodę cofania, którą możesz wywołać,
i robi to tak, jak to brzmi.
Jeśli to zapiszemy i przejdę do posiłków, jeśli kliknę przycisk Wróć, uruchomimy nawigację wstecz.
Technicznie rzecz biorąc, to wyskakuje z ekranu, na którym jesteśmy i
wraca do poprzedniego ekranu w stosie. Jako alternatywę do powrotu, jeśli korzystasz z nawigatora stosów, masz
również pop, który robi to, co sugeruje nazwa,
wyskakuje z bieżącego ekranu na stosie, a ponieważ zawsze widzisz najwyższy ekran na urządzeniu, to również odtwarza nawigację wstecz,
więc jest to alternatywa dla powrotu. Różnica polega na tym, że pop może być używany tylko
wtedy, gdy
jesteś w nawigatorze stosów, powrót jest także dostępny w innych nawigatorach, których użyjemy później w tym module.
Czasami będziesz chciał wrócić do komponentu nadrzędnego,
powiedzmy tutaj w MealDetailScreen. Tam możemy również dodać przycisk i
na tym przycisku tutaj chcę wrócić do moich
kategorii, powiedzmy, a zatem dodam onPress, a tutaj w tej funkcji mogę użyć props nawigacji pop, racja,
ponieważ to zabiera nas z powrotem .
Problem polega oczywiście na tym, że zabiera mnie to z powrotem, ale tylko do ekranu przed tym ekranem, więc do ekranu.
Pochodzę z. Chcę jednak wrócić do ekranu
kategorii, więc chcę pominąć dwa ekrany jednocześnie.
W tym celu masz pop-to-top, jest to
kolejna metoda, którą możesz wywołać, która po prostu wyskakuje ze wszystkich ekranów ze stosu i przenosi cię z
powrotem do ekranu głównego.
Więc jeśli klikniesz to, otrzymamy animację wstecz i wrócimy do ekranu głównego, który
w tym przypadku
jest ekranem kategorii, więc tutaj jest alternatywa. Teraz jest jeszcze jedna ostatnia
możliwa czynność nawigacyjna, której czasem możesz potrzebować. Powiedzmy, że na ekranie kategorii chcesz przejść do
kategorii posiłków, ale nie chcesz dodawać go do stosu, ale zamiast tego chcesz zastąpić go obecnym składnikiem w stosie, aby
nadal był tylko jeden ekran w stos, ale ten ekran jest wtedy nową stroną, co
oznacza również, że
nie będziesz mógł wrócić na nową stronę, ponieważ stos będzie pusty, co oznacza,
że Twoja aplikacja zostanie zamknięta.
Więc jeśli chcesz to zrobić, możesz użyć replace. Zamień również tak, jak
push pobiera tylko taki identyfikator, a replace przenosi cię również do nowego ekranu, nie odtwarza animacji do przodu,
zamiast tego natychmiast przeskakuje tam i nie dostajesz automatycznie przycisku powrotu, ponieważ stos jest
pusty, w przeciwnym razie jest to tylko ekran.
Można tego użyć na przykład na ekranie logowania, na którym użytkownik się zalogował, a po
zalogowaniu użytkownik nie powinien mieć możliwości powrotu
do ekranu logowania, więc możesz po prostu zastąpić ekran logowania swoim zalogowanym na ekranie z
profilem użytkownika lub czymkolwiek podobnym.
Jeśli nadal próbujesz wrócić, nic się nie dzieje, ponieważ nie możesz wrócić, na
stosie nie ma nic więcej. Dlatego oczywiście zastąpienie nie jest
absolutnie tym, czego potrzebujemy w tej aplikacji, chciałem tylko to tutaj przedstawić, chociaż zobaczymy więcej dostępnych wzorców i sposób
poruszania się między stronami i kiedy możesz chcieć zamienić lub przełączać się między
ekranami tak jak w tym module, chciałem przedstawić go już w tym momencie, jeszcze tutaj,
wrócę, aby nawigować z nazwą trasy wskazującą na kategorię posiłków. Dzięki temu uzyskałeś przegląd niektórych podstawowych metod nawigacji, które
pozwalają poruszać się między ekranami. Jak wspomniałem, w tym module zobaczymy
oczywiście wiele wzorców, na razie to jest to i powiedziałbym, że przy okazji, czas
dodać trochę mięsa do tej aplikacji, upewnij się, że jest to bardziej realistyczna aplikacja, a nie tylko
sztuczna aplikacja, jaką jest obecnie.