Усталяванне

Дадайце пакет, а затым перанясіце навігацыю і overlay у яўны стан. Не змяшчайце імператыўны push/pop у той жа стэк.

Адна залежнасць

Усталёўка адной камандай pub. Ніякая падрыхтоўка для генерацыі кода не патрэбна.

API, арыентаваны на стан

Вы кіруеце List<PageEntry> і неабавязковым OverlayRequest як чыстым станам.

Паступовае ўкараненне

Пачніце з аднаго функцыянальнага патоку і мігруйце экран за экранам.

Усталяваць і ініцыялізаваць

Выкарыстайце pub add, затым падключыце пачатковы root-стан для старонак і overlay.

Каманда

Пачатковы стан праграмы

import 'package:declarative_nav/declarative_nav.dart';

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

  @override
  void initState() {
    super.initState();
    _pages = const [
      PageEntry(key: 'home', name: '/home'),
    ];
  }
}
Абмежаванне

У адным стэку, PageEntry.key павінен заставацца ўнікальным бо гэта становіцца ідэнтычнасцю старонкі Navigator.