Установка
Добавьте пакет, затем переведите навигацию и оверлеи в явное состояние. Не смешивайте императивные push/pop в одном стеке.
Одна зависимость
Установка одной командой pub. Настраивать генерацию кода не требуется.
API, ориентированный на состояние
Вы управляете List<PageEntry> и необязательным OverlayRequest как чистым состоянием.
Постепенное внедрение
Начните с одного сценария и переносите его экран за экраном.
Установка и инициализация
Используйте pub add, затем подключите начальное корневое состояние для страниц и оверлея.
Команда
Начальное состояние приложения
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.