Кеңесуге тиіс емес, қателіктерге бейім жағдайлар.

Көптеген қателер императивтік және декларативтік модельдер бірге қолданылғанда пайда болады. Мәліметтердің тұтастығын сақтау үшін, жүйенің күйіне қатысты шектеулерді қатаң түрде сақтау қажет.

"Push/pop" әрекеттерімен беттерді үйлестіру.

Navigator.push/pop функцияларын List<PageEntry> тізімімен басқарылатын стектерге қолданбаңыз.

Берілген күйідегі элемент.

Виджеттердің экземплярларын беттің метадеректеріне қоспаңыз. Тек кілттерді және маршрутқа ұқсас идентификаторларды қолданыңыз.

Шексіз кілттер.

Бөлектер тізімінде бірдей PageEntry.key мәндерін қайта пайдаланбаңыз.

Миграцияға арналған тізім.

Бұл тізімді қолдану арқылы, кодты қайта жазу кезінде архитектураның тұтастығын сақтауға көмектесесіз.

Тізім.

Жақсы мен жаман.

// Дұрыс емес: бірдей стекте бұйрық пен декларативті стильдің бірге қолданылуы
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];

// Дұрыс: тек декларативті күйді жаңарту
setState(() {
  _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
Пікір қалдыру туралы кеңес.

Кодты қарау кезінде, мыналарды бақылаңыз: кімдерге "stack mutations" деген ұғым тиесілі? және бірнеше API арқылы бірдей деректер жиынтығына өзгертулер енгізетін ұсыныстарды қабылдамау.