Przykłady błędnych praktyk, których należy unikać.

Większość problemów pojawia się, gdy łączy się podejścia imperatywne i deklaratywne. Należy ściśle oddzielać obszary odpowiedzialne za zarządzanie stanem.

Łączenie mechanizmów "push" i "pop" z funkcjami stron.

Nie należy wywoływać metod `Navigator.push` ani `Navigator.pop` dla stosów, które są już zarządzane przez obiekt `List<PageEntry>`.

Widget w stanie.

Nie umieszczaj instancji komponentów (widgetów) w metadanych strony. Zachowuj tylko klucze i identyfikatory przypominające ścieżki.

Niek ograniczone klucze.

Nie należy używać tych samych wartości kluczy (PageEntry.key) dla różnych wpisów w tej samej sekwencji.

Lista kontrolna migracji.

Wykorzystaj tę listę kontrolną podczas przeglądów refaktoryzacji, aby zapewnić spójność architektury.

Lista kontrolna.

Dobro kontra zło.

// Złe: mieszanie poleceń i deklaracji dla tej samej struktury danych
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Dobre: aktualizacja tylko stanu deklaratywnego
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Wskazówka dotycząca recenzji.

Podczas przeglądu kodu, należy śledzić... kto jest właścicielem mutacji w stosie? i odrzucać zmiany, które modyfikują ten sam zasób poprzez wiele interfejsów programowania aplikacji (API).

Następny.

Wstęp.