Keyrðu Navigator 2.0 út frá stöðu.

declarative_nav gerir þér kleift að stjórna síðum og yfirlögum sem venjulegri stöðu án þess að kalla beint á Navigator.push/pop eða showDialog.

Síður sem gögn

PageEntry heldur ekki Widget-týpum. Viðmótið er smíðað í gegnum resolver-kallið þitt.

Skjábundin yfirlög

Dialogar og sheets geta verið afmörkuð við skjá, þar á meðal staðbundna flipastöðu þegar þarf.

Óháð stöðustjórnun

Virkar með setState, Riverpod, Bloc, Provider eða hvaða stöðulagi sem er.

Upphafsflæði

Settu pakkann upp og færðu síðan síður og yfirlög yfir í skýra stöðu.

Uppsetning

Upphafsform

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,
    );
  }
}
Grunnregla

Ekki blanda skipanabundnu push/pop og yfirlýsandi List<PageEntry> fyrir sama stafla. Einn sannleiksgjafi kemur í veg fyrir að leiðsögn fari á reiki.