Орчлоогүй, буруу арга замууд.

Олон алдаа нь тушаалын маяг (imperative) болон тодорхойлох маягийн (declarative) загварууд холигдсон үед гардаг. Өгөгдлийн хязгаарыг чамдахаар хатуу байрлалтай байх хэрэгтэй.

"Push/pop" функцтэй хуудсуудыг хольж ашиглах.

`Navigator.push` болон `Navigator.pop` функцийгууд нь `List<PageEntry>`-ээр удирдлагатай байгаа цэгүүдийг ашиглахдаа хэрэглэхгүй байх ёстой.

Уг элементийн төлбөр.

"Widget"-ийн экземплүүдийг хуудсын мета өгөглдүүд рүү оруулахаа боль. Зөвхөн түлхүүрүүд болон замын шинжтэй идентификаторүүдийг л ашиглаарай.

Хязгааргүй түлхүүрүүд.

Ижил давхруу тохиолдол бүрт, PageEntry обьектын "key" утгууд нь адилгүй байх ёстой. Түүнчлэн, ижил утгууд нь ижил цуванд давхардсан байж болохгүй.

Иргэнийн шилжилтэд холбогдох шаардлага.

Энэ жагсаалтыг программ хангамжийн бүтэц нь тогтмол байхаар, өөрчлөлтүүдийг шалгах үе шатуудад ашиглана уу.

Шинжилгээний жагсаалт.

Сайн байна гэдэг нь муу байна гэсэн утгатай.

// Зүйтэй зүйл: идэвхтэй тушаал болон утгатай илэрхийллийг ижил stack-т хольж хэрэглэх.
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Зөв зүйл: зөвхөн утгатай илэрхийллийг шинэчлэх.
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Зөвлөмж: Шууд сэтгэгдэх.

Код шалгалтын үе шатуудад, дараах зүйлсийг анхаарч бай: "Stack mutations"-ийн эзэн хэн бэ? мөн олон төрлийн API-г ашиглан ижил төлбөрт өөрчлөлт оруулдаг шийдлүүдийг эсэргүүц.