Декларативна навігація та оверлеї для Flutter.

Керуйте сторінками Navigator 2.0 і локальними оверлеями без Navigator.push/pop або showDialog.

Сторінки — це дані

PageEntry зберігає лише метадані. UI створюється вашим резолвером.

Локальні оверлеї

Діалоги та bottom sheet обмежені екраном без глобального стану.

Незалежно від стану

Використовуйте setState, Riverpod, Bloc або Provider. Залежності не потрібні.

Перші кроки

Встановіть declarative_nav і рендерьте сторінки через callback резолвера.

Встановлення

Посібник з використання

class AppRootState extends State<AppRoot> {
  OverlayRequest? _overlay;
  late List<PageEntry> _pages;

  @override
  void initState() {
    super.initState();
    _pages = const [PageEntry(key: 'home', name: '/home')];
  }

  Widget build(BuildContext context) {
    return DeclarativePagesNavigator(
      pages: _pages,
      buildPage: _buildPage,
      onPopTop: _popTop,
      canPopTop: () => _overlay == null,
    );
  }
}
Важлива примітка

Цей пакет уникає Navigator.push/pop і викликів showDialog. Керуйте навігацією та оверлеями зі стану.

Попередня

Огляд