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).
Poprzedni.
Obsługa z tyłu.Następny.
Wstęp.