Jāizvairās no šādiem bieži sastopamiem kļūdu modeļiem.

Lielākā daļa kļūdu rodas, kad tiek sajaukti imperatīvie un deklaratīvie modeļi. Ievērojiet stingru stāvokļa robežu.

Apvienojot "push/pop" funkcijas ar lapām.

Neizmantojiet metodes Navigator.push un Navigator.pop, ja stieks jau tiek kontrolēts ar List<PageEntry>.

Vadīklis noteiktā stāvoklī.

Neiekļaujiet "Widget" instancu informāciju lapas metadatiem. Saglabājiet tikai atslēgas un identifikatorus, kas atgādina maršrutus.

Neierobežotas atslēgas.

Neizmantojiet dublikātus `PageEntry.key` vērtību vienā un tajā pašā datu blokā.

Migrācijas kontrolsaraksts.

Izmantojiet šo kontrolsarakstu pārbaudot kodu pārstrukturēšanas procesus, lai nodrošinātu arhitektūras konsekvenci.

Kontrolliste.

Labs pret slikto.

// Ļoti slikti: jaukšana starp pavēļu un deklaratīvo pieeju vienai un tai pašai datu struktūrai.
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Labi: atjaunina tikai deklaratīvo stāvokli.
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Padoms recenzijām.

Koda pārskatīšanas laikā, sekojiet līdzi... kam pieder "stack" mutācijas? un ignorēt izmaiņas, kas maina to pašu datu struktūru, izmantojot vairākas API.

Iepriekšējais.

Aizmugures apstrāde.

Nākamā lapa.

Ievads.