Flutter: BLoC i konteksty nawigacji

Dzisiaj pokażę wam, jak możemy przekazać BLoC do następnego ekranu poprzez nawigator, jeśli nie zapewniamy MultiBlocProvider jako globalnego dostawcy całego BLoC.

Pełny przykład możesz obserwować w repozytorium git .
Zacząłbym od przypadku nawigacji:

W tym przypadku mamy dwa różne obiekty BuildContext, pierwszy to obiekt kontekstu związany z funkcją „build” Twojego Widżetu, a drugi „routeContext” związany z konstruktorem „MaterialPageRoute”.

Globalne BLoC

Kiedy MultiBlocProvider otacza całą aplikację, nie ma znaczenia, w jakim kontekście użyć coz, cały BLoC będzie przepuszczany przez każdy kontekst.

Ale pomyśl o tym, wszystkie widżety będą miały dostęp do każdego BLoC. Nie ma problemu, jeśli są to dane autoryzacyjne lub informacje o profilu, które muszą być dostępne dla wielu widżetów. Ale jeśli są to dane, których należy żądać od API i dopiero po pomyślnej autoryzacji, będziesz musiał napisać dużo kodu związanego z leniwą inicjalizacją każdego z BLoC i zarządzać niewykorzystanymi zdarzeniami, stanami itp.

Lokalny BLoC

Możemy zlokalizować BLoC dla każdej części aplikacji, już wiesz, jak to zrobić:

W takim przypadku będziesz mieć ten BLoC tylko w tym zakresie, na przykład jest to strona, która służy do wyświetlania katalogu produktów. Ale cały kod z BlocBuilder wewnątrz elementu potomnego tego BlocProvider nie będzie miał dostępu do kontekstu bloku, który zmusza cię do przekazania kontekstu bloku do każdej funkcji, która tego potrzebowała, tak jak w przykładzie:

Obejście problemu z lokalnym BLoC

Aby uniknąć braku danych obiektu kontekstowego, wystarczy utworzyć opakowanie bezstanowe i użyć widgetu docelowego jako dziecko, aby uzyskać dostęp do bloku z kontekstu kompilacji widgetu:

Wtedy łatwiej będzie zbudować część strony, przejść blok przez nawigację itp.

I użyj tego samego opakowania po drugiej stronie, gdzie musisz zbudować widżet strony oparty na BLoC z poprzedniej strony, na przykład Home> ItemDetails:

W rezultacie otrzymaliśmy rozwiązanie do przechodzenia bloku przez nawigację i uproszczenie pracy z BLoC w widżetach.

Jak zwykle wszystkie źródła są otwarte i dostępne w moim repozytorium GitHub , więc powodzenia!

Pomóż mi, jeśli chcesz ulepszyć ten artykuł, więc nie wstydź się - zapisuj swoje komentarze!

Suggested posts

Opanowanie programowania mobilnego: jak wybrać najlepszy język programowania dla swojej aplikacji

Opanowanie programowania mobilnego: jak wybrać najlepszy język programowania dla swojej aplikacji

Rozwój mobilny stał się kluczowym elementem sukcesu firm w dzisiejszym cyfrowym świecie. Jako programista aplikacji mobilnych bardzo ważne jest, aby wybrać odpowiedni język programowania do tworzenia aplikacji.

Metody rozszerzania trzepotania: przewodnik z przykładami

Metody rozszerzania trzepotania: przewodnik z przykładami

Jeśli chcesz tworzyć aplikacje, które mogą działać na wielu platformach, Flutter to świetny framework do rozważenia. Wykorzystuje język programowania Dart i ma funkcję zwaną „metodami rozszerzającymi”, która czyni go naprawdę elastycznym.

Related posts

Wyzwanie czytelnicze Goodreads jest toksyczne

Wyzwanie czytelnicze Goodreads jest toksyczne

Swędzenie w mojej dłoni rozszerzyło się, gdy targowałem się z miejscowym księgarzem o kolejną książkę. Ta książka, podobnie jak pozostałe, które ostatnio kupiłem, znalazłaby swój tron ​​na moim stosie „Do przeczytania” (TBR); a mimo to kupiłem.

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Koniec z hasłami — w jaki sposób klucze dostępu zastąpią Twoje hasło

Aby uniknąć niejasności, zostaną użyte następujące terminy; uwierzytelniający; Telefon komórkowy używany do tworzenia Witryny logowania; Witryna internetowa lub aplikacja, z której korzysta użytkownik, aby dokonać żądania logowania do Usługi; Sprzedawca świadczący daną usługę np

NIEOGRANICZONE ŻYCIE

Kiedy dorastasz, zwykle słyszysz, że świat jest taki, jaki jest, a twoje życie polega na tym, by żyć swoim życiem w świecie, nigdy nie ryzykując życia, po prostu podążaj wyznaczoną ścieżką i umrzyj w końcu i staraj się nie za bardzo walnij w ściany. Ale to bardzo ograniczone życie.

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

Powolna erozja: ujawnianie sposobów, w jakie ludzie marnują swoje kariery

W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.