Качуу керек болгон анти-үлгүлөр

Императивдүү жана декларативдүү моделдер аралашканда көпчүлүк мүчүлүштүктөр чыгат. Абалдын чегин так сактаңыз.

push/pop менен барактарды аралаштыруу

List<PageEntry> башкарып турган стектер үчүн Navigator.push/pop'ту колдонбоңуз.

Абалдагы Widget

Page метамаалыматына Widget инстанцияларын салбаңыз. Болгону ачкычтарды жана маршрутка окшош идентификаторлорду сактаңыз.

Чектелбеген ачкычтар

Бир эле стекте кайталанган PageEntry.key маанилерин кайра колдонбоңуз.

Көчүрүү текшерүү тизмеси

Бул текшерүү тизмегин refactor кароолорунда колдонуп, архитектураны ырааттуу кармаңыз.

Текшерүү тизмеги

Жакшы жана жаман

// Жаман: бир эле стек үчүн императивдүү жана декларативдүү ыкманы аралаштыруу
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Жакшы: декларативдүү абалды гана жаңыртыңыз
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Кароо кеңеши

Кодду карап чыгууда стек өзгөртүүлөрүн ким башкарарын көзөмөлдөп бир эле стекти бир нече API аркылуу өзгөрткөн өзгөртүүлөрдү четке кагыңыз.

Кийинки

Киришүү