インストール

パッケージ導入後、ページ一覧とオーバーレイ要求を状態として管理する形へ段階的に移行します。

導入は1コマンド

追加のコード生成設定なしで導入できます。

状態中心の設計

List<PageEntry> と OverlayRequest? を状態として持つだけです。

段階的に移行可能

1フローずつ宣言的ナビゲーションへ置き換えられます。

導入と初期化

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上のページ識別子として使われます。